dba+開源工具:實時監(jiān)控和分析MySQL服務(wù)器性能指標(biāo)的命令行工具
mysqlstat工具簡介
mysqlstat 是一個命令行工具,用于實時監(jiān)控和分析 MySQL 服務(wù)器的性能指標(biāo)和相關(guān)信息。
它可以幫助 DBA(數(shù)據(jù)庫管理員)和開發(fā)人員定位和解決數(shù)據(jù)庫性能問題。
主要功能
實時監(jiān)控:mysqlstat 可以實時監(jiān)控 MySQL 服務(wù)器的 QPS(每秒查詢數(shù))、TPS(每秒事務(wù)數(shù))以及網(wǎng)絡(luò)帶寬使用情況等指標(biāo)。
查詢分析:它可以展示執(zhí)行次數(shù)最頻繁的前N條 SQL 語句,幫助定位查詢效率低下的問題,以便進(jìn)行優(yōu)化。
表文件分析:mysqlstat 可以列出訪問次數(shù)最頻繁的前N張表文件(.ibd),這有助于查找熱點表和磁盤使用情況。
鎖阻塞:工具可以顯示當(dāng)前被鎖阻塞的 SQL 語句,幫助識別并解決鎖相關(guān)的問題。
死鎖信息:mysqlstat 可以提供關(guān)于死鎖的信息,幫助 DBA 了解并解決死鎖問題。
索引分析:它可以查找重復(fù)或冗余的索引,幫助優(yōu)化索引使用和減少存儲空間的占用。
連接數(shù)統(tǒng)計:工具可以統(tǒng)計應(yīng)用端 IP 的連接數(shù)總和,有助于了解數(shù)據(jù)庫的連接負(fù)載情況。
表大小統(tǒng)計:mysqlstat 可以提供庫中每個表的大小統(tǒng)計信息,有助于了解表的存儲占用情況。
Binlog 分析:它可以在高峰期分析哪些表的 TPS 較高,幫助定位性能瓶頸或優(yōu)化熱點表。
查看主從復(fù)制信息:工具可以提供主從復(fù)制狀態(tài)和延遲情況,方便監(jiān)控和管理主從復(fù)制環(huán)境。
原理
圖片
演示
https://www.douyin.com/video/7288887720057851151
使用
MySQL命令行監(jiān)控工具 - mysqlstat
options:
-h, --help show this help message and exit
-H MYSQL_IP, --mysql_ip MYSQL_IP
Mysql IP
-P MYSQL_PORT, --mysql_port MYSQL_PORT
Mysql Port
-u MYSQL_USER, --mysql_user MYSQL_USER
Mysql User
-p MYSQL_PASSWORD, --mysql_password MYSQL_PASSWORD
Mysql Password
--top TOP 需要提供一個整數(shù)類型的參數(shù)值,該參數(shù)值表示執(zhí)行次數(shù)最頻繁的前N條SQL語句
--io IO 需要提供一個整數(shù)類型的參數(shù)值,該參數(shù)值表示訪問次數(shù)最頻繁的前N張表文件ibd
--lock 查看當(dāng)前鎖阻塞的SQL
--dead 查看死鎖信息
--index 查看重復(fù)或冗余的索引
--conn 查看應(yīng)用端IP連接數(shù)總和
--tinfo 統(tǒng)計庫里每個表的大小
--binlog Binlog分析-高峰期排查哪些表TPS比較高
--repl 查看主從復(fù)制信息
-v, --version show program's version number and exit
- 實時監(jiān)控mysql服務(wù)器的QPS、TPS、網(wǎng)絡(luò)帶寬指標(biāo)(默認(rèn)不加參數(shù)選項)
shell> chmod 755 mysqlstat
shell> ./mysqlstat -H 192.168.198.239 -P 6666 -u admin -p 'hechunyang'
圖片
- 執(zhí)行次數(shù)最頻繁的前10條SQL語句
shell> ./mysqlstat -H 192.168.198.239 -P 6666 -u admin -p 'hechunyang' --top 10
圖片
- 訪問次數(shù)最頻繁的前10張表文件ibd
shell> ./mysqlstat -H 192.168.198.239 -P 6666 -u admin -p 'hechunyang' --io 10
圖片
- 查看當(dāng)前鎖阻塞的SQL
shell> ./mysqlstat -H 192.168.198.239 -P 6666 -u admin -p 'hechunyang' --lock
圖片
- 查看重復(fù)或冗余的索引
shell> ./mysqlstat -H 192.168.198.239 -P 6666 -u admin -p 'hechunyang' --index
圖片
- 查看應(yīng)用端IP連接數(shù)總和
shell> ./mysqlstat -H 192.168.198.239 -P 6666 -u admin -p 'hechunyang' --conn
圖片
- 統(tǒng)計庫里每個表的大小
shell> ./mysqlstat -H 192.168.198.239 -P 6666 -u admin -p 'hechunyang' --tinfo
圖片
- 查看死鎖信息
shell> ./mysqlstat -H 192.168.198.239 -P 6666 -u admin -p 'hechunyang' --dead
圖片
- Binlog分析-高峰期排查哪些表TPS比較高
shell> ./mysqlstat -H 192.168.198.239 -P 6666 -u admin -p 'hechunyang' --binlog
mysql-bin.000003
圖片
或者指定一個binlog范圍
shell> ./mysqlstat -H 192.168.198.239 -P 6666 -u admin -p 'hechunyang' --binlog
mysql-bin.000003 mysql-bin.000006
會統(tǒng)計mysql-bin.000003,mysql-bin.000004,mysql-bin.000005,mysql-bin.000006這4個文件
圖片
- 查看主從復(fù)制信息
shell> ./mysqlstat -H 192.168.198.239 -P 6666 -u admin -p 'hechunyang' --repl
圖片
支持 MySQL5.7/8.0,工具適用于Centos7 系統(tǒng)。
8.0默認(rèn)是caching_sha2_password用戶認(rèn)證,需要更改為 mysql_native_password
mysql> CREATE USER 'rd'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
Query OK, 0 rows affected (0.00 sec)
mysql> GRANT ALL on *.* to 'rd'@'%';
工具研發(fā)者介紹
賀春旸,dbaplus社群金牌專家,凡普金科和愛錢進(jìn)DBA團(tuán)隊負(fù)責(zé)人,《MySQL管理之道:性能調(diào)優(yōu)、高可用與監(jiān)控》第一&二版、《MySQL運維進(jìn)階指南》作者,曾任職于中國移動飛信、安卓機鋒網(wǎng)。五次榮獲dbaplus年度MVP,致力于MariaDB、MongoDB等開源技術(shù)的研究,主要負(fù)責(zé)數(shù)據(jù)庫性能調(diào)優(yōu)、監(jiān)控和架構(gòu)設(shè)計。