標籤:

MySQL 負荷較高,有哪些排查原因的方式?

processlist/slowlog 都沒發現啥過慢的 SQL 語句,但負荷就是一波一波飈上去。


iostat -dx 1 觀察磁碟讀寫情況,如果有十幾M的讀/寫 就要留意了

vmstat 1 看看CPU 的Idle情況 ,如果idle很低 有可能是MySQL的語句很耗CPU

top 看看有啥大損耗的進程否

ps aux


http://t.cn/hdOBWl 從這裡下載我的教程。嘿嘿,相信會有幫助。

簡單說

1:內存是否佔用較多swap分區

2:i/o壓力大不大,最好把top顯示的信息貼出來

3:神馬引擎,myisam還是innodb

4:如果是i/o壓力,反解binlog分析寫入頻繁度

5:如果不是i/o壓力,採樣查詢請求分析查詢頻繁度


用nmon監控一下,看看磁碟IO,用loadrunner強壓一段時間。沒有1秒以上的慢查詢,不代表索引就沒問題。解決好索引問題,負荷應該會降低很多。


show status;查看具體的狀態值,對症下藥。


1:尋找慢語句,默認mysql的慢語句時間閾值是1秒,有個mysql的patch,打上去之後可以改成xx毫秒,因為對經常查詢的語句來說,幾百毫秒就是很慢的語句了。

2:myisam和innodb的常用幾個優化參數,這個可以網上搜下,myisam主要是key_buffer_size, innodb主要是innodb_buffer_pool_size,如果對插入性能要求高,但是允許有些事務執行失敗的話,可以把innodb_flush_log_at_trx_commit改成0,可以有效提高數據插入的速度。

其他的樓上幾個大神都說過了


1、首先使用最基本的top看看CPU忙在哪裡,是iowait嚴重,還是usr用的多,還是被sys消耗了

2、再根據問題使用針對新監測工具如:vmstat,dstat 等工具看看系統最繁忙的是什麼設備

3、最後再不斷深入...


感覺問題問的有點不清楚

看看cpu主要耗在什麼地方,死鎖 索引 iowait


推薦淘寶的dba常用工具oradba。


推薦閱讀:

TAG:資料庫 | MySQL |