調整 Mysql 和監控
我想知道是否有人可以向我指出一種用於 MySQL 數據庫調整的工具/方法。
其實調音
my.cnf
如下:我的數據庫引擎是
MyISAM
|Mysql 5.1.73
- key_buffer = 500M
- 排序緩衝區大小 = 256M
- 讀取緩衝區大小 = 256M
- read_rnd_buffer_size = 256M
- myisam_sort_buffer_size = 256M
- 執行緒記憶體大小 = 16
- 執行緒並發 = 32
- tmp_table_size = 500M #預設33M!
- max_heap_table_size = 500M
- 跳過名稱解析
- 跳過主機記憶體
- myisam_recover = 備份,強制
- query_cache_size=256M
我的電腦是:
Intel(R) Xeon(R) CPU E5620 @ 2.40GHz, 16 cores Linux 2.6.32-5 Memory - 23.58 GB total
我也看過慢查詢,但你認可或推薦什麼?
我做出了選擇:
SELECT CONCAT(ROUND(KBS/POWER(1024, IF(PowerOf1024<0,0,IF(PowerOf1024>3,0,PowerOf1024)))+0.4999), SUBSTR(' KMG',IF(PowerOf1024<0,0, IF(PowerOf1024>3,0,PowerOf1024))+1,1)) recommended_key_buffer_size FROM (SELECT LEAST(POWER(2,32),KBS1) KBS FROM (SELECT SUM(index_length) KBS1 FROM information_schema.tables WHERE engine='MyISAM' AND table_schema NOT IN ('information_schema','mysql')) AA ) A, (SELECT 2 PowerOf1024) B;
3967M
沒有辦法,只有旅途!你可以從MySQLTuner開始——它是一個發佈建議的調整腳本——它不會修改伺服器上的任何內容,我已經讀過(找不到參考,抱歉)它在執行時對性能的影響是最小的。還有這個——但它似乎已經死了。
我將重複 MySQLTuner 附帶的警告:
完全了解對 MySQL 數據庫伺服器所做的每項更改對您來說非常重要。如果您不理解腳本輸出的部分內容,或者您不理解建議,您應該諮詢您信任的知識淵博的 DBA 或系統管理員。始終在暫存環境中測試您的更改,並始終牢記一個領域的改進可能會對其他領域的 MySQL 產生負面影響。
有很多關於 MySQL 的書——目前最強烈推薦的一本是 Schwartz 等人的High Performance SQL。持續監控數據庫與調整一樣重要,因此當事情開始出錯時,您至少可以開始指出正確的方向。
另一件非常重要的事情要記住,您的 MySQL 數據庫只是系統的一部分,使用Linux 的 iostat、vmstat、sysstat 工具監視系統的各個組件也很重要。
你說:
我也看過慢查詢,但你認可或推薦什麼?
但是我們沒有查詢,沒有表(SHOW CREATE TABLE blah1,blah2…) - 所以很難提供幫助。該網站更多的是針對技術問題的具體問題,而不是您可能通過研究文本獲得更好答案的廣泛問題。
$$ EDIT $$回應OP的評論。 在此處查看 Schwartz 的書的目錄。你會看到這是一本大書,裡面有很多關於 MySQL 的內容。更重要的是,它將數據庫置於SYSTEM的上下文中。如果沒有更多資訊,我無法判斷,但您可能需要更改 key_buffer_size 或者您的問題可能與該特定變數無關。
首先,我有兩個建議給你——首先,升級到 5.6。然後,您將擁有觸手可及的性能模式,允許您正確地分析您的應用程序 - 分析後,您可以繼續進行調整。分析正在確定(在詳細級別)您的系統將時間花在哪裡——一旦你弄清楚了,你就可以做出合理的邏輯決定,把你的調整工作放在哪裡——它可能是 MySQL 變數——它可能是增加RAM、CPU、磁碟吞吐量或網路頻寬(連同我上面提到的作業系統分析)。
其次,我建議您將系統遷移到 InnoDB——它可以更好地利用機器的資源,並且幾乎在所有方面都更好——Google搜尋“innodb vs myisam”會給你一大堆連結——看看。MyISAM 的生命即將結束 - 請參閱此處了解Bill Karwin和Morgan Tocker的評論- 這兩位都是 MySQL 世界的重要人物。
然後,閱讀我推薦的書(是的,我知道,呻吟……),如果您有更具體的問題,請在此處發布。
免責聲明:適用於在生產系統上實施更改之前測試更改的常見警告!
您對 MySQLCalculator.com 的使用將是您在調整系統的第一步中投入的最好的 2 分鐘。如果您知道它們將如何改善您對 MySQL 的使用,請僅使用大於預設值的值。