温馨提示×

Linux MySQL性能如何监控

小樊
43
2025-12-25 21:01:41
栏目: 云计算

Linux 上监控 MySQL 性能的实践指南

一 监控分层与核心指标

  • 建议从三层入手:系统层、数据库层、应用/日志层,并围绕以下关键指标建立基线。
  • 系统层
    • CPU:关注 load average、用户态/系统态占比,识别计算密集或锁等待导致的占用异常。
    • 内存:关注 可用内存、swap 使用,避免频繁换页影响数据库稳定。
    • 磁盘 I/O:关注 await、r/s、w/s、svctm/await、%util,定位慢盘、I/O 饱和。
    • 网络:关注 带宽、丢包、重传,排除网络抖动对复制/查询的影响。
  • 数据库层
    • 连接与线程:Threads_connected、Threads_running,识别连接风暴与线程堆积。
    • 查询与慢查询:Queries、Questions、Slow_queries,配合慢查询日志定位问题 SQL。
    • InnoDB 关键项:Innodb_buffer_pool_reads/reads、Innodb_buffer_pool_hit_rate(计算:1−reads/reads+read_requests)、Innodb_row_lock_time、Innodb_row_lock_waits,衡量缓存命中与锁竞争。
    • 复制健康:Seconds_Behind_Master,监控主从延迟。
  • 日志层
    • 慢查询日志:记录 执行时间长、扫描行数多 的 SQL,用于优化。
    • 错误日志:关注 崩溃、启动失败、复制中断 等关键事件。

二 快速命令行检查

  • 系统资源
    • 实时资源:top/htop(按 P/M 排序定位高 CPU/内存进程)、vmstat 2(整体资源与 I/O)、iostat -x 2(磁盘详细指标)。
  • MySQL 即时状态
    • 全局状态与变量:SHOW GLOBAL STATUS;SHOW GLOBAL VARIABLES;
    • 当前连接与长事务:SHOW PROCESSLIST; / SHOW FULL PROCESSLIST;
    • InnoDB 细节:SHOW ENGINE INNODB STATUS\G;
    • 执行计划与诊断:EXPLAIN SELECT …;SHOW PROFILE(注意在部分版本中已被标记为过时,优先使用 Performance Schema/慢查询分析)。
  • 命令行工具
    • mytop(类 top 的实时会话/查询监控)、innotop(聚焦 InnoDB 事务、锁、I/O)、mysqladmin version/status(快速健康检查)。

三 持续监控与可视化

  • Prometheus + Grafana
    • 部署 mysqld_exporter 采集 MySQL 指标,Prometheus 拉取,Grafana 展示与告警;可导入社区 MySQL 仪表盘模板快速落地。
  • Zabbix
    • 使用 Zabbix Agent 或 ODBC 监控 MySQL,应用模板、设置阈值与通知,适合已有 Zabbix 体系。
  • Percona Monitoring and Management(PMM)
    • 一体化监控/诊断平台,覆盖 查询分析、复制拓扑、InnoDB 指标,适合深度运维。
  • 企业版与云服务
    • MySQL Enterprise Monitor 提供企业级监控与诊断;云数据库通常自带监控大盘与告警通道。

四 日志与查询分析

  • 慢查询日志
    • 启用与配置(示例):
      • slow_query_log = 1
      • slow_query_log_file = /var/log/mysql/slow-query.log
      • long_query_time = 2
    • 使用 pt-query-digest 分析慢日志,识别 Top SQL、执行计划变化、扫描行数异常,指导索引与 SQL 重写。
  • 错误日志
    • 定期检查 /var/log/mysql/error.log,关注 启动失败、崩溃、复制错误 等。

五 一键巡检与优化建议

  • MySQLTuner
    • 快速评估配置与状态,输出 缓存命中、临时表磁盘化、连接使用 等建议,适合例行巡检与容量评估。
  • Percona Toolkit
    • 组合使用 pt-query-digest、pt-mysql-summary、pt-heartbeat,覆盖 SQL 分析、实例概览、复制延迟 等核心场景。

0