2011-01-21 22 views
3

我已經接管了運行在ruby 1.8.7和mysql上的Rails 2.3.4應用程序的維護。該應用程序是一個帶定製擴展的經過修改的Radiant CMS 0.8.1站點。目前,生產環境經常出現緩慢且有時無響應的時期。在這些時候,我注意到mysql的CPU使用率跳過了屋頂。該網站有一個國際觀衆,並在其創建時擴大該網站沒有考慮到。目前,用戶羣約爲4600人,並在不斷增長。我可以採取哪些初始步驟來診斷Rails和MySQL中的糟糕表現?如何診斷在MySQL上運行的性能較差的Rails應用程序?

謝謝, 邁克

回答

3

雖然不是Rails的具體,我建議你使用MySQL slow query log和跟蹤那些回你的Rails應用程序在發送查詢(查詢log/production.log)。

+2

後找到慢查詢,你可以使用EXPLAIN來確定他們爲什麼這麼慢(我猜只是缺少指標,如果這些ActiveRecord生成的查詢) – cam 2011-01-21 16:11:34

+0

同意+1凸輪! – 2011-01-21 16:25:55

1

我簽約的最後一個地方使用了一個名爲query_reviewer的工具。這是一個Rails插件,它在開發模式下分析每個查詢並在UI中給你警告,讓你知道任何可能的問題。我喜歡它,因爲您不必在應用程序和日誌或其他測試工具之間來回切換。

https://github.com/dsboulder/query_reviewer

另一個有用的工具是New Relic的 - 它是免費的,如果你只是用它在當地的發展。它不僅分析SQL,還包括視圖呈現和其他潛在的效率問題。

http://newrelic.com/

相關問題