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),记录历史趋势;