我試圖評估各種Rails服務器解決方案。首先在我的名單上是一個nginx +乘客系統。我打滑了一個EC2實例的RAM 8場音樂會和2個處理器,nginx的安裝和乘客,並已將此添加到nginx.conf文件:高流量導軌性能調優
passenger_max_pool_size 30;
passenger_pool_idle_time 0;
rails_framework_spawner_idle_time 0;
rails_app_spawner_idle_time 0;
rails_spawn_method smart;
我加了一點「真棒」控制器鐵軌那會剛render :text => (2+2).to_s
然後我打滑了一個小盒子,跑這來測試它:
ab -n 5000 -c 5 'http://server/awesome'
而且CPU,而這是在包裝盒上運行看起來非常像這樣:
05:29:12 PM CPU %user %nice %system %iowait %steal %idle
05:29:36 PM all 62.39 0.00 10.79 0.04 21.28 5.50
我注意到只需要7-10個併發請求就可以使CPU處於1%閒置狀態,當然這會嚴重拖慢響應時間。
所以我想知道,很多CPU負載只是與Rails做生意的成本?即使有大量的RAM和一些內核,它是否能夠同時提供超過6個便宜的請求?有沒有什麼好的建議可以讓我提供15-30個同時請求?
更新:嘗試了「超大型和大量CPU」EC2之一的事情。神聖的廢話是很多CPU的力量。甜蜜點似乎是每個CPU大約2個同時請求,在16個同時請求的情況下能夠達到約630個請求/秒。不過,不知道這是否在許多小盒子上實際上具有成本效益。
此外,這是一個Rails堆棧溢出的問題或超級用戶的性能問題?我對此有點困惑。 – 2010-10-15 17:46:44
也許ServerFault? – Codebeef 2010-10-15 17:50:34
性能調優可能是stackoverflow和serverfault之間的灰色區域,我認爲 – Amala 2010-10-15 17:50:36