What have you found for these years?

2008-12-02

Ruby Enterprise Edition = 超級 Rails 懶人包 (2)

passenger 和 ruby enterprise 都稍微試了一下,這篇是講結果。
雖然官方都宣稱 passenger 很好很強大,不過我每次測試起來,
都嘛是贏不了 thin. thin 還是比較快也比較省記憶體,有沒有比較穩,
就不是隨便測可以測得出來了... 我現在比較相信的是 mongrel 比較穩。
不過 mongrel 有些地方不太方便,not event-driven 版也跑很慢...

而 ruby enterprise, 用起來也沒有覺得比較快...
(搭配 passenger 和重編過的 thin 都試過)
gc 可能比較好就是了,但這也只是推測,沒跑久一點,很難講。



所以我覺得,passenger 和或 ruby enterprise 的效果應該還是很有限。
事實上,跑 passenger 還是比較吃記憶體的,需要額外吃一隻 ruby process.
我猜是做 scheduling 用的,約吃 30m on 64-bit gentoo.
然後 apache 本身也要吃個 10m 上下,整個算起來就是多吃非常多 @@

但當然也不是全無好處,apache 畢竟是老牌,有他龐大的資源在,
如果原本就有在跑 apache, 這樣 all in one 也是方便。
不然最省資源的作法是什麼?

nginx 放前端做 load balancing, 還有處理靜態檔案,
背後一堆 thin 在跑,這些 process 也都是分散的,
不像 passenger 會自己處理這些 process, restart 用 touch 也很方便。
而 apache 本身也能處理靜態檔案,就是 all in one 了...

多吃不少資源,也沒跑比較快沒錯,但是方便很多是真的...
我也就不必寫那 app-deploy 來處理 server 的各種 startup
而且 passenger 和 ruby enterprise 的 install/config script
都寫得非常方便...

結論是,果然是懶人用的,不過如果不差這些記憶體的話,確實很方便啊

==
只是覺得,依照 unix philosophy,
write programs do one thing and do it well,
這種 all in one 的東西,效能原是要輸的,沒道理贏...

但用 nginx + thin 又有很多東西需要調校,例如 upload 時,
要小心 nginx 存 tmp file 丟給 thin, 然後 rails 又再
tmp file 一次,這樣就是嚴重資源浪費了...

所以沒時間搞這有的沒的人,可能還是直接 passenger 比較快。
但有時間的話,慢慢調一定可以弄到很強...

0 retries:

Post a Comment

All texts are licensed under CC Attribution 3.0