天天看點

《MySQL排錯指南》——4.3 其他軟體影響

本節書摘來自異步社群出版社《mysql排錯指南》一書中的第4章,第4.3節,作者:【美】sveta smirnova(斯維特 斯米爾諾娃),更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。

目前為止我們讨論的所有問題在mysql伺服器運作環境中都很重要。理想情況下,mysql應該運作在專有環境中,使用主機的所有實體資源。但是一些站點将mysql用在共享環境下。這包括共享的主機,許多執行個體運作在mysqld伺服器上,每個執行個體分别代表不同的客戶,系統同時運作mysqld以及用戶端應用程式和其他程序。

當對安裝在這種配置下的mysql進行調優時,需要額外檢查兩件事:其他程序在正常操作下使用多少資源,在關鍵時刻需要配置設定多少資源。

正常負載下,你可以猜到其他程式在預留給它們後還剩多少資源,适當設定mysql的選項。臨界負載通常是出乎意料的,會導緻突如其來的mysql錯誤甚至崩潰。這種狀況下沒有通用的處理方法。記住,第三方軟體可以影響mysql安裝,并且分析潛在的負載,采取補救措施。

是以,如果你預料到某一時刻一些應用程式擁有臨界負載,評估目前負載下的資源使用情況并根據情況調整mysql伺服器選項。在這種環境中,使用作業系統級别的限制是合理的,或者使用虛拟化。對比前面的章節,我建議此處增加限制,而不是删除它們。

最壞的情況是遇到了不可預知的高負載。你隻有在碰到問題時才會意識到它的存在。是以,如果mysql開始出問題,而發現這個問題并不該發生,始終記住并發程序的影響,檢查作業系統日志,檢視是否其他應用程式會影響mysql對資源的通路。在mysql初始化時安裝監控軟體檢測所有程序的運作也是很重要的。

确定mysql伺服器是否受其他作業系統程序影響的一個好方法是,在一個隔離的環境中運作一條有問題的查詢。這也是在2.5節中推薦的方法。

[1] 6.9.1小節會進一步讨論sysbench。

[2] 雖然使用專有的平台工具來設定作業系統的資源限制是正确方式,但值得一提的是内置的shell指令ulimit,它簡單易用并且适用于所有使用者。運作ulimit -a 可以顯示所有目前限制,或者為目前使用者設定軟限制。

本文僅用于學習和交流目的,不代表異步社群觀點。非商業轉載請注明作譯者、出處,并保留本文的原始連結。