MySQL 快速定位性能问题
生活随笔
收集整理的這篇文章主要介紹了
MySQL 快速定位性能问题
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
? 一、性能查看幾款小工具: Top? 查看:觀察 load average :1分鐘,5分鐘,15分鐘的平均負載值 1. us% 用戶使用的 CPU 占比,如果 us% 太高, 極有可能索引使用不當。 2. sy% 系統(tǒng)內(nèi)核使用的CPU占比,如果sy% 太高,要注意MySQL 連接數(shù)以及MySQL 的鎖信息。 3. wa% io 使用 CPU 的占比,如果wa% 太高,要關注MySQL是否使用了硬盤臨時表,或者大量的刷盤等操作, 也有可能是硬盤太慢,或硬盤故障,可以使用iostat 等工具進行觀察。 Mpstat 各個邏輯CPU 之間的負載是否均衡,(可能是中斷不均衡導致性能問題),可以使用 mpstat 命令來進行詳細觀察。 Vmstat 通過vmstat 來觀察每秒的進程、內(nèi)存、swap、io、cpu 等詳情情況。 Iostat -x 關注IO 使用情況? iostat -x? 1.rrqm/s? #每秒讀取的扇區(qū)數(shù)。 2.wrqm/s #每秒寫入的扇區(qū)數(shù)。 3.avgrq-sz #平均請求扇區(qū)的大小 4.qvgqu-sz #是平均請求隊列的長度。 5.await #每一個IO 請求的相應時間。 6.%util #在統(tǒng)計時間內(nèi)所有處理IO 時間,除以總共統(tǒng)計時,暗示了設備的繁忙程度。 二、MySQL 查看 1. tps,qps,并發(fā)連接數(shù)(thread_connected)、并發(fā)活躍線程數(shù)(thread_running)、臨時表(tmp_disk_tables)、鎖(locks_waited,Innodb_row_lock*)等指標。 2.通過 show processlist ,查看當前是否有不良線程狀態(tài),例如:copy to tmp table 、creating sort index、sorting result,creating tmp table、長時間的 sending data等。 3.關注InnoDB buffer pool page 的使用情況,主要是InnoDB pages_free、InnoDB wait_free 兩個。 4.關注 InnoDB 的 redo_log 刷新延遲,尤其是 checkpoint 延遲情況,并關注 unpurge list 大小。 5.關注 innodb status 中是否有 long semaphore wait 情況的出現(xiàn)。 6.觀察是否有大事務的阻塞。 參考: 田帥萌 3306 π https://github.com/enmotplinux/old_mysql_20181224/blob/master/mysql_inspection.py https://github.com/enmotplinux/old_mysql_20181224/blob/master/sos.sh
轉(zhuǎn)載于:https://www.cnblogs.com/Camiluo/p/10187344.html
總結(jié)
以上是生活随笔為你收集整理的MySQL 快速定位性能问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MS SQL 分页存储过程
- 下一篇: SQL UPDATE with INNE