Innotop 是一款基於 Perl 開發的 MySQL 即時監控工具,類似 Linux top,專為 InnoDB 引擎設計。它能即時顯示查詢狀態、鎖等待、事務資訊、慢查詢、複製狀態等關鍵指標,是 DBA 診斷效能瓶頸的利器。
Time::HiRes、Term::ReadKey、DBI、DBD::mysql# 1. 安裝 Perl 模組 perl -MCPAN -eshell cpan> install Time::HiRes Term::ReadKey DBI DBD::mysql # 2. 下載並解壓 wget https://innotop.googlecode.com/files/innotop-1.9.0.tar.gz tar -zxvf innotop-1.9.0.tar.gz cd innotop-1.9.0 # 3. 編譯安裝 perl Makefile.PL make install
innotop --help # 顯示幫助 innotop --version # 顯示版本
| 模式鍵 | 功能說明 |
|---|---|
Q | Query List(查詢列表),支援 S 排序、k Kill 查詢 |
T | Transaction List(事務列表) |
L | Lock Info(鎖資訊) |
R | Replication(主從複製狀態) |
I | InnoDB Status(InnoDB 內部狀態) |
V | Variables(系統變數) |
S | Slow Queries(慢查詢,需開啟 slow query log) |
常用快捷鍵:? 幫助、q 離開、d 切換顯示間隔、f 過濾條件。
# 1. 進入 MySQL 查看現狀 mysql> SHOW VARIABLES LIKE '%quer%'; # log_slow_queries = OFF, long_query_time = 10 # 2. 編輯 /etc/my.cnf([mysqld] 區段) log-slow-queries = /var/lib/mysql/mysql-slow.log long_query_time = 3 # 3. 重啟 MySQL /etc/init.d/mysqld restart # 4. 驗證 mysql> SHOW VARIABLES LIKE 'log_slow_queries'; # 應為 ON
innotop -h 192.168.1.100 -u dba -pinnotop -d 2 每 2 秒刷新,適合大螢幕監控。pt-query-digest:分析慢查詢日誌生成報告。Can't locate Term/ReadKey.pmcpan Term::ReadKey 安裝。skip-name-resolve 設定。
Innotop 輕量、功能強大,是 MySQL DBA 日常巡檢與故障排查的首選工具。建議搭配慢查詢日誌、performance_schema、sys schema 共同構建完整觀測體系。