作者ryudo (那很好哇)
看板Ruby
标题Re: RoR website 效能问题
时间Wed Feb 20 00:46:42 2008
※ 引述《godfat (godfat 真常)》之铭言:
: 真的要先说我对 web development 不熟... orz
: ※ 引述《xuitejoke (xxddite)》之铭言:
: : 而只要一个人 hang 住,其他人亦无法进来。myangelsays.com 至
: : 发生 peak 时亦曾发生 memory leak ,导致 process 被 OS kill 掉
: : => 到这里我才知道为什麽要开 cluster 前面再做 balancer
: 我个人是认为 mongrel 一定要做 cluster, 原因是 mongrel 好像
: 一次只能处理一个 request? 这样有人 hang 住其他人当然进不来...
: 这好像也是因为 rails multi-thread 有问题?所以用 multi-process 来处理。
: apache 也有大量 prefork 不是?虽然说 apache 效能似乎很差?
apache2.x有分prefork和worker(thread)
如果是prefork的话效能的确不如lighttpd 但如果是worker则会胜出
不论是在效能 记忆体占用 和process数量上
不过worker的缺点就是程式死掉时会一起死
不幸的是ruby的thread不是真正的thread 所以效能跟记忆体消耗降不下来
因此驻定是prefork的ror 求最大效能的话请用lighttpd+fastcgi
lighttpd有一些撇步(x-sendfile...)可以在某些情形下取得优势
: : =>结论:要乖乖做 balancer 和做 cache。否则 request 一高的确比 apache+php 容易
: : 爆炸一百倍。但是日 pv 在 5000 以下可以完全不用理会这个问题。
: apache + php 一般是不是用 mod_php? 听说这效能很好,再加上,apache 本身可以处理
mod_php搭配worker apache的效能跟记忆体消耗的确是非常的好
自己试过的话 mongrel+proxy的效能大概在同样的logic只有mod_php的一半
当然是指没cache的前提之下
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 60.250.147.190