游乐游手机版
首页/系统平台/文章详情

Ubuntu下MySQL数据库性能监控方法与优化技巧

时间:2026-08-21 06:16
Ubuntu系统下MySQL性能监控与数据库优化的可行方案一 内置与命令行快速检查服务与基础状态查看服务运行状态:systemctl status mysql查看 MySQL 简要状态信息:mysqladmin -u root -p status连接与线程检查当前连接数与运行线程:SHOW GLOB

Ubuntu系统下MySQL性能监控与数据库优化的可行方案

UbuntuMySQL如何监控数据库性能

一 内置与命令行快速检查

  • 服务与基础状态
    • 查看服务运行状态:systemctl status mysql
    • 查看 MySQL 简要状态信息:mysqladmin -u root -p status
  • 连接与线程
    • 检查当前连接数与运行线程:SHOW GLOBAL STATUS LIKE 'Threads_connected';、SHOW FULL PROCESSLIST;
  • InnoDB 关键指标
    • 查看行锁与锁等待情况:SHOW GLOBAL STATUS LIKE 'Innodb_row_lock%';
    • 查看 InnoDB 引擎详细状态:SHOW ENGINE INNODB STATUSG
  • 配置与容量
    • 检查关键配置项:SHOW VARIABLES LIKE 'max_connections';、SHOW VARIABLES LIKE '%slow%';
    • 统计数据库容量与表碎片情况:SELECT table_schema, SUM(data_length/1024/1024) AS data_mb, SUM(index_length/1024/1024) AS idx_mb, SUM(data_free/1024/1024) AS free_mb FROM information_schema.tables GROUP BY table_schema;
      以上命令非常适合 Ubuntu 下 MySQL 数据库的日常巡检和临时故障排查,能够帮助快速发现连接数、锁竞争以及容量增长等常见性能问题。

二 日志与内置性能架构

  • 慢查询日志
    • 启用与阈值(在 /etc/mysql/my.cnf 的 [mysqld] 段):
      • slow_query_log = 1
      • slow_query_log_file = /var/log/mysql/slow.log
      • long_query_time = 2
      • 可选:log_queries_not_using_indexes = 1
    • 分析工具
      • 内置工具:mysqldumpslow -s t /var/log/mysql/slow.log
      • 高级分析:pt-query-digest /var/log/mysql/slow.log(来自 Percona Toolkit)
  • 错误日志
    • 定位错误日志路径:SHOW VARIABLES LIKE 'log_error';
    • 重点关注启动失败、服务崩溃、死锁、权限异常等关键信息
  • Performance Schema 与 Sys Schema
    • Performance Schema:可对 I/O、锁、线程、SQL 语句等事件进行细粒度性能监控
      • 示例:SELECT EVENT_NAME, COUNT_STAR, SUM_TIMER_WAIT FROM performance_schema.events_waits_summary_global_by_event_name ORDER BY SUM_TIMER_WAIT DESC LIMIT 10;
    • Sys Schema(MySQL 5.7+ 内置):提供更直观、更易读的性能分析视图
      • 示例:SELECT * FROM sys.statement_analysis ORDER BY a vg_latency DESC LIMIT 10;
      • 示例:SELECT * FROM sys.user_summary;
        将慢查询日志与 Performance Schema/Sys Schema 结合使用,可以同时定位“哪些 SQL 变慢了”和“数据库为什么会变慢”,是 MySQL 性能监控中非常实用的组合方案。

三 第三方监控与可视化

  • Prometheus + Grafana + mysqld_exporter
    • 组件作用:Exporter 将 MySQL 监控指标以 Prometheus 格式暴露;Prometheus 负责定时抓取与时序存储;Grafana 用于可视化展示和告警配置
    • 部署要点:为 Exporter 创建具备最小权限的数据库监控账号,配置 my.cnf 或 .my.cnf 认证;Prometheus 抓取 9104 端口;Grafana 导入 MySQL 仪表盘(如 ID 7362)
  • Percona Monitoring and Management(PMM)
    • 特点:一体化 MySQL 监控平台,覆盖 MySQL/InnoDB、主从复制、查询分析(Query Analytics)以及操作系统指标,部署方便,开箱即用
  • Zabbix
    • 通过官方模板可监控连接数、QPS/TPS、复制延迟、InnoDB 缓冲池命中率等核心指标,适合已经使用 Zabbix 运维体系的团队
  • 轻量实时与系统级工具
    • Netdata:开箱即用的实时可视化监控工具,内置 MySQL 插件,访问 https://localhost:19999
    • Glances:面向系统全局的监控工具,支持 MySQL 插件(快捷键 Shift+M 查看 MySQL)
    • Innotop:类似 top 的交互式 MySQL 实时监控工具,重点关注 InnoDB、锁、事务和查询表现
      上述监控方案可根据业务规模和复杂度灵活选择:轻量级场景可优先使用 Netdata、Glances、Innotop;需要统一告警和图形化平台时,更推荐 PMM 或 Prometheus+Grafana。

四、关键指标与告警阈值示例

指标如何查看告警阈值示例说明连接数使用率Threads_connected、max_connections> 80%连接池接近上限,可能导致新连接被拒绝慢查询数增长Slow_queries、慢查询日志持续上升或突然增加结合 pt-query-digest 分析具体 SQL 语句复制延迟Seconds_Behind_Master(复制状态)> 60s会影响读一致性与故障切换效率InnoDB 缓冲池命中率Innodb_buffer_pool_read_requests、Innodb_buffer_pool_reads< 95%命中率偏低时建议适当增大 innodb_buffer_pool_size查询缓存命中率Qcache_hits、Qcache_inserts< 90%命中率过低可考虑关闭或进一步调优(MySQL 8.0 已移除)临时表磁盘化比例Created_tmp_disk_tables、Created_tmp_tables> 10%可增加 tmp_table_size/max_heap_table_size 或优化 SQL锁等待Innodb_row_lock_waits、Innodb_row_lock_time_a vg持续偏高需要关注热点行、事务设计与索引情况磁盘 I/O 饱和度iostat -x 1(%util、await)%util 持续 >80% 或 await 高说明 I/O 可能成为性能瓶颈,可考虑升级磁盘或优化 I/O 模式这些关键指标和告警阈值可以作为 MySQL 性能监控的基础参考,实际生产环境中还需要结合业务峰值、历史趋势和数据库负载情况持续校准。

五 快速上手与自动化巡检

  • 5 分钟快速巡检脚本
    • 连接与线程:mysql -e "SHOW GLOBAL STATUS LIKE 'Threads_connected';" -s -N
    • 慢查询:mysql -e "SHOW GLOBAL STATUS LIKE 'Slow_queries';" -s -N
    • InnoDB 锁:mysql -e "SHOW GLOBAL STATUS LIKE 'Innodb_row_lock%';" -s -N
    • 错误日志尾部:sudo tail -n 50 $(mysql -s -N -e "SHOW VARIABLES LIKE 'log_error';")
    • 库表容量:mysql -e "SELECT table_schema, SUM(data_length/1024/1024) AS data_mb, SUM(index_length/1024/1024) AS idx_mb FROM information_schema.tables GROUP BY table_schema;" -s -N
  • 建议的自动化
    • 建议按每日或每小时采集上述指标,写入内部数据库或推送到 Prometheus/Grafana;慢查询日志可每日使用 pt-query-digest 生成分析报告并归档保存
    • 每周运行 MySQLTuner 获取数据库配置优化建议,并先在测试环境验证后再部署到生产环境
    • 对关键阈值配置 告警(如连接数、复制延迟、缓冲池命中率、磁盘 I/O)
      通过“脚本巡检 + 可视化监控平台 + 定期性能报告”的方式,可以建立起 MySQL 监控、分析与持续优化的完整闭环机制。
来源:https://www.yisu.com/ask/36577858.html
上一篇Ubuntu下MySQL数据库备份与恢复方法详解 下一篇Ubuntu提高磁盘空间利用率的方法与优化技巧
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
VMware安装Ubuntu完整教程:创建虚拟机与启动验证
系统平台 · 2026-09-01

VMware安装Ubuntu完整教程:创建虚拟机与启动验证

本教程详细演示如何在VMware中创建Ubuntu虚拟机,涵盖ISO挂载、硬件配置、安装向导及启动验证。通过清晰的步骤与验证命令,帮助新手快速搭建可用的Linux学习环境。

Win10专业版U盘安装教程:制作启动盘与完整安装步骤
系统平台 · 2026-09-01

Win10专业版U盘安装教程:制作启动盘与完整安装步骤

本文提供Win10专业版U盘安装完整流程:准备8GB以上U盘与官方镜像,制作启动盘并核对盘符;通过F12 F11 Esc等快捷键或BIOS设置U盘为第一启动项;安装时选择专业版并谨慎分区;完成后在“设置—系统—关于”验证版本与激活状态。操作前务必备份数据。

Windows10系统字体太小怎么调大
系统平台 · 2026-08-27

Windows10系统字体太小怎么调大

Windows10系统字体太小怎么调大?只需两步:首先打开设置中的显示选项,将缩放比例调整为125%或150%;随后运行ClearType文本调谐器优化字体清晰度。此方法适用于高分屏及普通屏幕,无需修改注册表即可解决界面拥挤问题。

Win10磁盘占用100%基础排查:从监控到清理的完整步骤
系统平台 · 2026-08-27

Win10磁盘占用100%基础排查:从监控到清理的完整步骤

Windows 10系统出现磁盘占用100%会导致电脑卡顿、程序响应缓慢。本文提供基础排查方案:首先通过任务管理器确认是否为磁盘高负载,随后进入系统存储页面分析C盘占用类别,最后针对性清理临时文件。遵循此流程可有效缓解磁盘压力,避免盲目重装系统。

Windows10系统怎么显示此电脑和控制面板
系统平台 · 2026-08-27

Windows10系统怎么显示此电脑和控制面板

Windows10默认可能不显示桌面图标,导致找不到“此电脑”和“控制面板”。只需进入个性化设置,在“桌面图标设置”中勾选对应选项即可恢复。本文提供详细图文步骤,帮助快速找回系统入口。