Linux環境下MariaDB性能監控的綜合方法
基礎進程與資源查看
使用top -p $(pgrep -f mariadb)或htop -p $(pgrep -f mariadb)實時查看MariaDB進程的CPU、內存占用;ps aux | grep mariadb過濾出MariaDB相關進程的詳細信息;ss -tnp | grep mariadb或netstat -tnp | grep mariadb查看數據庫的網絡連接狀態(如端口、連接數、客戶端IP)。
狀態與性能詳情
SHOW STATUS:獲取全局狀態變量(如連接數Threads_connected、查詢次數Queries、緩沖池命中率Innodb_buffer_pool_hit_rate),可通過LIKE篩選特定指標(如SHOW STATUS LIKE 'Thread%'查看線程相關狀態);SHOW PROCESSLIST:列出當前所有數據庫進程(包括ID、用戶、狀態、執行的SQL),幫助識別長時間運行的查詢或鎖等待;SHOW ENGINE INNODB STATUS:針對InnoDB存儲引擎,提供事務、鎖、緩沖池等深度信息(如死鎖、緩沖池利用率)。日志分析
SHOW VARIABLES LIKE 'log_error'查看,使用tail -f /var/log/mysql/error.log實時監控;slow_query_log=1并設置long_query_time),通過pt-query-digest工具分析慢查詢根源(如未索引、復雜JOIN)。Performance Schema是MariaDB內置的性能監控框架,可收集SQL執行、鎖等待、表IO等詳細數據。
SET GLOBAL performance_schema = ON;(默認開啟),通過SHOW VARIABLES LIKE 'performance_schema'確認狀態;SELECT DIGEST_TEXT, COUNT_STAR, SUM_TIMER_WAIT FROM performance_schema.events_statements_summary_by_digest ORDER BY SUM_TIMER_WAIT DESC LIMIT 10;SELECT OBJECT_SCHEMA, OBJECT_NAME, COUNT_READ, COUNT_WRITE FROM performance_schema.table_io_waits_summary_by_table ORDER BY COUNT_READ + COUNT_WRITE DESC LIMIT 10;。Percona Monitoring and Management (PMM)
開源工具,提供實時儀表盤(如QPS、延遲、慢查詢數)、查詢分析(SQL執行計劃、Top SQL)、告警(閾值觸發郵件/Slack通知)。
pmm-admin config --server-insecure-tls --server-url=http://pmm-server:443),添加實例即可監控。Prometheus + Grafana
mysqld_exporter(MariaDB專用exporter)采集性能指標(如連接數、緩沖池使用率);其他工具
glances -t 1實時查看系統與MariaDB性能概況。check_mariadb.sh),采集SHOW STATUS、iostat等數據,通過cron定時運行(如每天凌晨0 0 * * * /path/to/script.sh >> /var/log/mariadb_monitor.log),記錄歷史趨勢;