2013-04-25 40 views
1

我有一個WordPress的3.5.1站點獲得一點點的流量(80個併發訪問者,每秒約5次點擊/瀏覽量)。該網站運行良好,直到它達到約85人。通常有4個管理員同時登錄。該網站有8個自定義帖子類型 - 帖子有3500個帖子,新​​聞發佈(自定義帖子類型)有13000個帖子。所有這些都是在網站上分頁的,所以在任何一個頁面上都不會有超過20個帖子。WordPress的網站 - 錯誤連接到數據庫 - 只有在高流量

我使用的唯一插件是wp-pagenavi和w3totalcache。

我將WP_DEBUG_LOG設置爲true並記錄了錯誤。我得到的主要錯誤(除了與此問題無關的各種通知和警告),mysql已達到max_user_connections限制。我試圖把它設置得更高,但是CPU無法處理負載(4個四核CPU,每個2.17GHz,4GB的RAM)。

什麼可能導致這麼多的連接?

我查看了錯誤發生時運行的mysql進程,並且有很多連接表示「SLEEPING」或「SLEEP」(可能是15-20)。我還注意到通過進程日誌,httpd在交通高峯期間經常重啓。

有關如何解決問題的任何想法?

注意:如果您的答案是檢查我的wp-config.php文件並確保我的用戶名,密碼和主機是正確的,請不要回復。這不是問題。該網站在正常流量下正常工作。

+0

檢查第一個答案這個問題http://stackoverflow.com/questions/9083060/mysql-kill-sleep-connections。 – 2013-04-25 18:25:32

+0

這聽起來像一個選項(即減少wait_timout變量),但是這會帶來什麼影響?這會開始殺死實際使用的連接嗎?我想確保管理員在嘗試編輯某些內容時不會被踢出。另外,將這個變量設置爲什麼是合理的數字? – codescribblr 2013-04-25 19:07:30

+0

這不會影響登錄的用戶會話。您的問題可以在服務器默認情況下更好地解決,因爲它與更多的服務器設置相關檢查這個答案關於同一主題,以獲得更好的主意:http://serverfault.com/a/71379。 – 2013-04-25 21:05:47

回答

0

數據庫服務器由於高負載而退出。錯誤日誌裏有什麼?數據庫的大小是多少?您是否使用mysqltuner.pl檢查my.cnf中MySQL服務器的查詢加載和緩存設置? https://github.com/rackerhacker/MySQLTuner-perl

WordPress可以真正陷入數據庫與許多職位/頁面修訂。用插件刪除它們http://wordpress.org/extend/plugins/revision-control/我已經將數據庫丟棄到其原始大小的10%,從而導致性能大幅提升。

+0

我安裝了revision-control並將其限制爲2個修訂版本。這有點減少了db的大小。總大小是〜400MB。我從來沒有聽說過mysqltuner。我會仔細研究。我不覺得應該只有80個訪問者和幾個管理員登錄的服務器上應該有一個高負載。 – codescribblr 2013-04-25 19:03:09

+0

會有許多帖子和CPT項目的負載。 mysqltuner易於使用,並會給你建議調整my.cnf以便更好地緩存查詢。 – markratledge 2013-04-26 00:34:20