要设置 mysql 性能监控,首先启用慢查询日志,在配置文件中设置 slow_query_log、slow_query_log_file 和 long_query_time;其次使用 show status 和 show processlist 实时查看数据库状态;最后引入第三方工具如 prometheus+grafana 或 pmm 进行可视化监控。核心指标包括:1. 查询性能(qps、慢查询数量、缓冲池命中率);2. 资源使用(cpu、内存、磁盘io);3. 连接与线程状态(连接数、threads_running);4. 锁与事务问题(表锁等待、死锁频率、回滚率)。实际操作建议定期检查慢查询日志、设置报警机制并保留历史数据对比分析,云数据库用户可直接使用内置监控面板,关键在于选对指标、设好告警并持续优化。
mysql 设置性能监控其实不复杂,但要真正发挥效果,得先搞清楚几个关键点:怎么监控、用什么工具、看哪些指标。下面直接说怎么做和该关注什么。
一、如何设置 MySQL 性能监控?
最基础的做法是启用 MySQL 自带的监控功能,比如慢查询日志、状态变量等。另外,也可以结合第三方工具来收集和展示数据。
-
开启慢查询日志
慢查询是排查性能问题的第一步。可以在配置文件 my.cnf 或 my.ini 中加上:slow_query_log = 1 slow_query_log_file = /var/log/mysql/mysql-slow.log long_query_time = 1
这样执行时间超过 1 秒的 SQL 都会被记录下来。
-
使用 SHOW STATUS 和 SHOW PROCESSLIST
临时查看当前数据库运行状况,可以执行:SHOW GLOBAL STATUS; SHOW PROCESSLIST;
这两个命令能快速发现连接数过高、有无卡住的查询等问题。
-
引入监控工具
常见的工具有:- MySQL Enterprise Monitor(官方付费)
- prometheus + grafana(开源方案,灵活)
- Percona Monitoring and Management (PMM)(免费且可视化好)
这些工具可以定时采集数据,并以图表形式展示,更方便长期观察趋势。
二、MySQL 监控的核心指标有哪些?
监控不是为了看热闹,而是发现问题。以下几个指标是最关键的:
1. 查询性能相关
- QPS(Queries Per Second):每秒处理的查询数量。
- 慢查询数量:反映是否有执行效率低的 SQL。
- InnoDB 缓冲池命中率:缓冲池命中率越高越好,低于 95% 可能需要调优配置。
2. 资源使用情况
- CPU 使用率:长时间高 CPU 占用可能意味着索引缺失或 SQL 写法有问题。
- 内存使用:特别是 InnoDB 的缓冲池大小是否合理。
- 磁盘 IO:频繁读写会影响响应速度,可以通过 iostat 等工具辅助分析。
3. 连接与线程状态
- 当前连接数:接近最大连接限制时会出问题,需注意。
- Threads_running:表示当前正在执行操作的线程数,太高可能是阻塞了。
4. 锁与事务问题
- 表锁等待次数
- 死锁发生频率
- 事务回滚率
这些指标可以帮助判断是否存在并发瓶颈或者设计上的问题。
三、实际操作建议
- 定期检查慢查询日志:每周抽几分钟看看有没有新增的慢 SQL。
- 设置报警机制:比如 QPS 突然飙高、连接数超限等,可以用 Prometheus + Alertmanager 实现。
- 保留历史数据做对比:有些问题是周期性的,比如每天晚上跑报表导致延迟,只有对比历史数据才能发现规律。
如果你用的是云数据库,像阿里云 RDS 或 AWS RDS,它们本身就有性能监控面板,可以直接开箱即用。
基本上就这些。MySQL 的性能监控不需要太复杂的配置,关键是选对指标、设好告警、保持定期回顾。很多问题其实一开始就藏在那些容易忽略的数字里。