Linux监控MariaDB性能的方法与工具
系统自带的命令行工具无需额外安装,适合快速检查MariaDB的资源使用情况和运行状态,是日常监控的基础手段。
top
命令可实时显示MariaDB进程的CPU、内存占用率(按M
键按内存排序,P
键按CPU排序);htop
是其增强版,提供更直观的界面和颜色标识,支持鼠标操作。可通过top -p $(pgrep -f mariadb)
或htop -p $(pgrep -f mariadb)
过滤出MariaDB进程。vmstat 1
(每秒刷新一次),重点关注free
(空闲内存)、si/so
(交换分区读写)、cpu wa
(I/O等待占比)。iostat -x 1
(每秒刷新),关注%util
(磁盘利用率,超过70%需警惕)、await
(平均I/O响应时间)、r/s/w/s
(读写次数)。ss -tnp | grep mariadb
(显示TCP连接及对应的进程ID),或netstat -tnp | grep mariadb
。MariaDB自带的命令可直接获取数据库的性能指标、进程信息和配置参数,是性能调优的核心工具。
mysqladmin -u root -p status
(显示Uptime、Threads_connected、Queries per second),mysqladmin -u root -p extended-status
(显示更详细的计数器信息)。SHOW STATUS LIKE 'Threads%'
(查看线程状态)、SHOW STATUS LIKE 'Innodb_buffer_pool_read%'
(查看InnoDB缓冲池读性能)、SHOW STATUS LIKE 'Qcache%'
(查看查询缓存命中率)。Sending data
、Locked
)。命令示例:SHOW FULL PROCESSLIST
(显示完整SQL语句),可用于识别长时间运行的查询或锁等待。SET GLOBAL performance_schema = ON;
(默认开启),查看状态:SHOW VARIABLES LIKE 'performance_schema';
。可通过performance_schema
中的表(如events_statements_summary_by_digest
)分析慢SQL。专用工具提供图形化界面、历史数据存储和告警功能,适合长期监控和团队协作。
mysqld_exporter
采集MariaDB数据),Grafana负责可视化(创建仪表盘展示CPU、内存、QPS等指标)。优势是灵活定制仪表盘,支持历史数据查询和告警规则配置。sudo apt install netdata
),通过Web界面查看实时图表,支持自定义告警。SHOW STATUS
、分析慢查询日志)。适合习惯使用Web界面的管理员,需配合MariaDB的慢查询日志功能使用。日志记录了MariaDB的运行轨迹,通过分析日志可发现历史性能问题(如慢查询、错误)。
/var/log/mariadb/mariadb.err
(Ubuntu)或/var/log/mysql/error.log
(CentOS),查看命令:tail -f /var/log/mariadb/mariadb.err
(实时查看)、grep "ERROR" /var/log/mariadb/mariadb.err
(筛选错误信息)。/etc/my.cnf
或/etc/mysql/my.cnf
),添加slow_query_log=1
、slow_query_log_file=/var/log/mysql/mariadb-slow.log
、long_query_time=1
(阈值设为1秒),重启MariaDB生效。分析工具:mysqldumpslow
(内置工具,统计慢查询频率)或pt-query-digest
(Percona工具,提供更详细的分析报告)。