2011-03-23 56 views
0

最近我們的rails應用程序升級到2.3.8。我們還在升級期間用Phusion Passenger替換了Mongrel/Mongrel羣集。乘客問題

無論何時我們嘗試部署我們的應用程序,它似乎都會在最初響應得更快,但響應時間逐漸增加。我們還注意到,數據庫框中的cpu使用率達到400%,並且全局隊列中的許多請求正在等待。這似乎只發生在我們的生產環境中。

任何人都可以讓我知道我應該怎麼去調試這個問題?

無論如何,我們可以限制乘客和數據庫之間的連接數量嗎?

也有我們可以在乘客中設置連接池的方法嗎?

謝謝,
Sivakumar。

回答

1

我不認爲這個問題是乘客。如果你的數據庫盒子的CPU數量很大,那麼你的問題可能就在那裏。沒有有關數據庫的更多信息,很難給你細節,但這裏有一些事情你可以嘗試:

  1. 運行top,並檢查您在所有內存的多啓動mysqld或其它數據庫進程佔用。如果這個數量不高,那麼您可能需要調整MySQL設置以利用數據庫框中的RAM。
  2. 使用mytop命令分析您正在運行的數據庫查詢。您可能有一些查詢會佔用您的所有系統資源或導致大量交換。
  3. 查看你的MySQL慢日誌,看看你是否有超過1秒的查詢運行。
  4. 檢查您的數據庫引擎。你在使用MYISAM和/或InnoDB嗎?您可能需要對數據庫進行不同的調整,以便爲每個引擎分配適量的內存和資源。
  5. 諮詢DBA。他們將能夠查看您的使用情況和應用程序,並且如果問題出在您的數據庫或應用程序上,可以更明確地告訴您。

P.S:我會建議升級到乘客3,它的性能比Passenter 2.更好

+0

我第二次升級到乘客3.0.x的 – 2011-03-23 17:29:01

+0

我們已經在使用乘客3.我們正在六臺機器上運行應用程序,每臺機器有45個乘客實例。所以我想總共有270個連接會被MySQL打開。這可能是爲什麼mysql佔用CPU的原因嗎?無論如何將限制與MySQL幫助的連接數量? – Sivakumar 2011-03-24 02:55:37

+0

我不能肯定地說,但我會建議先檢查我在回答中列出的步驟。對於一臺機器來說,45個乘客似乎很多,但是如果他們能夠處理它,那麼你的能力就越強。您可以嘗試限制您打開的乘客密碼。 – 2011-03-24 04:53:31