2009-06-18 73 views
3

我使用Apache + Passenger(= Mod Rails),MySQL和Acts_As_Ferret(服務器模式)運行Ubuntu 8.04共享主機(VMWare)。第一次請求時速度太慢。我做了很多REST操作,並且用戶很少。建議使用精簡版的Ubuntu + Rails服務器

現在我想做一個全新安裝...

哪些設置(基於Ubuntu)你推薦一個非常活潑的回報率服務器?(如Ngnix,薄,到Mongrels或其他花哨的東西)

+0

更新文檔中:這個問題被稱爲插件acts_as_scaffolding – Stefan 2009-06-23 08:17:14

回答

2

檢查ec2onrails郵件列表得到大大提升速度,那裏已經有很多討論各種thin/nginx/passenger/apache替代品和排列,以及基於一些體面測試發佈的一些硬性數據。

您還會發現ec2onrails圖像(google ec2onrails)形狀的包裝好的RoR/Ubuntu堆棧 - 它用於運行在亞馬遜EC2雲上,但它有很多漂亮的東西在那裏+ capistrano任務。目前它基於apache,但正在進行的版本正在尋找替代品。沒有理由不能爲非EC2服務器使用相同的構建腳本。

如果您的問題僅僅是最初的請求,請嘗試在考慮其實際運行前升溫服務器(例如,通過運行腳本以自動執行基本操作)。

哦,我應該補充 - 你確定問題是你的堆棧?更可能是你的代碼。可能值得看看你的瓶頸在哪裏,你可以從緩存中獲得什麼,改進的查詢和索引,特別是memcached,然後再調整其他任何東西。

+0

謝謝。今天我將仔細研究代碼中可能出現的瓶頸。 – Stefan 2009-06-19 08:35:34

2

那麼你可以通過切換到Ubuntu 9.04,甚至8.10

+1

好奇,爲什麼? – lucas 2009-06-18 17:00:21

+1

他們記錄說這些版本比以前版本更快。 – samoz 2009-06-18 17:03:24

1

我個人使用nginx +乘客在我的Ubuntu的堆棧。並使用獅身人面像代替鼬

3

乘客在第一次請求時速度很慢,因爲它是空閒的,它會關閉所有的導軌進程,因此第一個請求必須加載導軌進程。您需要定期進行ping操作,以避免空閒並關閉rails進程或將空閒超時設置爲較高值。

查找RailsPoolIdleTime