2016-09-27 108 views
1

我在一個每天可以獲得大約100K頁面瀏覽量的WordPress網站上工作。我們使用Varnish作爲緩存層。最近,我們遇到了一個問題,看起來隨機的,MySQL性能下降並導致我們的應用程序崩潰。下面是來自New Relic的一個停運昨天發生的圖形:調試MySQL性能問題

Application performance graph

這已經在過去的一週發生了兩次。這個網站在沒有任何人接觸到生產服務器的情況下可以正常運行一週,然後發生這種情況。通常的響應時間大約爲500ms,這裏峯值爲60Kms(!)。通過停止apache,讓數據庫冷卻,然後啓動apache備份來解決問題。

這不是更多的查詢正在運行,或一個特定的慢速查詢正在運行,導致此問題。如果我採用New Relic報道的任何「慢速查詢」並在其他時間運行它們,那麼它們正在快速發展。下面是MySQL的吞吐量同一時間框架圖:

Database throughput graph

我檢查了WordPress的鉤子和插件的統計,和一切似乎是正常的。

我的問題是,我應該從哪裏開始尋找?哪些MySQL設置可能導致此問題?它甚至可能是一個MySQL問題,還是更可能是一個應用程序問題?

+0

它有足夠的CPU嗎? –

+0

系統管理員或數據庫管理員可以更好地回答這些問題。如果您設法識別導致問題的一段代碼並且希望修復問題,開發人員就會參與其中。 – Shadow

+1

如果它是完全隨機的間隔,我會檢查存儲後端。如果是定期,我會檢查任何cronjobs,備份工作或其他。在任何情況下,我寧願問服務器故障,因爲這絕不是一個*編碼*問題 –

回答

0

有了這樣一個高流量的網站,因爲你提到清漆,我假設你有一個VPS /雲/專用主機,與一個Linux發行版和ssh(根)接入。

既然如此,你應該開始檢查的第一件事是服務器錯誤日誌(這會有所不同根據您所使用的操作系統上的位置 - 你可以在需要的情況下,google一下)。這可能會給你一個關於問題根源的暗示。在停電期間檢查最高負載(# top)也可能有所幫助。

爲MySQL配置/性能調整和優化,你可以嘗試以下方法:

  1. 安裝MTOP工具,並運行它

  2. 試試這個好用的工具:

http://mysqltuner.com/

安裝並讓它運行> 2 4個小時。然後,它會給你特定的建議,根據你的服務器的mysql使用模式調整mysql配置。