Linux
跟踪 2 台伺服器之間的 MySQL 連接
我們遇到了一個伺服器執行速度特別慢的問題,但 CPU 從來沒有變得非常高。一位系統管理員對此進行了調查,並表示在任何時候都有大量來自伺服器 A 的 MySQL 埠(執行良好)和伺服器 B(有問題的伺服器)的連接。在伺服器 B 上看到的主要症狀是頁面載入時間非常慢,主要表現為頁面執行任何操作之前的初始掛起,以及與 Shell 的連接緩慢。值得指出的是,這不是特定於網站/應用程序的 - 不是由 Javascript 或類似原因引起的,因為我們在 3 或 4 個其他相同規格的伺服器上執行相同的應用程序,完全沒有問題。
我想要做的是嘗試追踪兩台伺服器之間這些 MySQL 連接的確切性質。所以,源是什麼,目的是什麼,目的是什麼。我是否應該啟用(目前禁用的)正常日誌?還有什麼我可以嘗試的嗎?兩台伺服器都在執行 CentOS(一台在 4.8 上,一台在 5.5 上),並且都在 WHM/cPanel 的最新版本和最新的穩定 PHP/Apache 版本上執行。
謝謝。
啟用日誌是個好主意,您還可以使用 MySQL Administrator 客戶端查看打開的連接,並在遇到問題時查看它們在做什麼。
儘管根據您的描述,我可以想到一個非常常見的問題,那就是 DNS 問題,它導致 MySQL 在處理傳入連接之前等待 DNS 超時。這通常體現在您所描述的情況下,即應用程序為每個請求打開一個新的 MySQL 連接(而不是使用持久連接池)。
在此處閱讀有關此內容的更多資訊:http: //dev.mysql.com/doc/refman/5.0/en/dns.html
(my.cnf 中的skip_name_resolve 是選項IIRC)