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工具,提供更详细的分析报告)。