4 个有用的命令行工具来监控 Linux 中的 MySQL 性能
有许多工具可以监控MySQL性能和排除服务器故障,但它们并不总是能完美匹配MySQL开发人员或管理员的常见需求,或者在某些情况下可能无法工作,例如远程或通过 Web 监控。
幸运的是, MySQL社区创建了各种开源工具来填补这一空白。另一方面,通过网络搜索很难找到这些工具,这就是我们编写了4 个命令行工具来监控Linux中MySQL数据库的正常运行时间、负载和性能的原因。
正常运行时间是指自上次关闭或重启以来数据库运行的时间。获取正常运行时间信息在许多情况下非常重要,因为它可以帮助系统管理员检查 MySQL 数据库的状态,了解 MySQL 数据库每秒处理的查询数、线程数、慢查询数以及许多有趣的统计数据。
1. Mytop
Mytop是我最经典的开源免费控制台(非 GUI)MySQL数据库监控工具之一,由Jereme Zawodny使用Perl语言编写。Mytop 在终端中运行,以表格形式显示有关线程、查询、慢查询、正常运行时间、负载等的统计信息,与 Linux top 程序非常相似。这间接帮助管理员优化和提高 MySQl 的性能,以处理大量请求并减少服务器负载。
各种 Linux 发行版都有 mytop 软件包,例如Ubuntu、Fedora和CentOS。有关安装说明的更多信息,请阅读:如何在 Linux 中安装 Mytop(MySQL 监控)
2. Mtop
mtop(MySQL top)是另一个类似的开源、基于命令行的实时 MYSQL 服务器监控工具,用Perl语言编写,以表格形式显示结果,与mytop非常相似。mtop 监控花费最多时间才能完成的 MySQL 查询,并在指定时间后终止那些长时间运行的查询。
此外,它还使我们能够从命令行界面识别与性能相关的问题、配置信息、性能统计信息和调优相关提示。这两个工具非常相似,但mtop并未得到积极维护,并且可能无法在新安装的 MySQL 版本上运行。
有关安装说明的更多信息,请阅读:如何在 Linux 中安装 Mtop(MySQL 监控)
3. Innotop
Innotop是一款实时高级命令行调查程序,用于监控在InnoDB引擎下运行的本地和远程 MySQL 服务器。Innotop 包含许多功能,并带有不同类型的模式/选项,可帮助我们监控 MySQL 性能的各个方面,以找出 MySQL 服务器的问题所在。
有关安装说明的更多信息,请阅读:如何在 Linux 中安装 Innotop(MySQL 监控)
4. mysql管理员
mysqladmin是预装了 MySQL 包的默认命令行 MySQL 客户端,用于执行管理操作,例如监控进程、检查服务器配置、重新加载权限、当前状态、设置 root 密码、更改 root 密码、创建/删除数据库等等。
要检查 mysql 状态以及正常运行时间,请从终端运行以下命令,并确保您必须具有 root 权限才能从 shell 执行该命令。
[root@localhost ~]# mysqladmin -u root -p version Enter password:
示例输出
mysqladmin Ver 8.42 Distrib 5.1.61, for redhat-linux-gnu on i386 Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Server version 5.1.61-log Protocol version 10 Connection Localhost via UNIX socket UNIX socket /var/lib/mysql/mysql.sock Uptime: 20 days 54 min 30 sec Threads: 1 Questions: 149941143 Slow queries: 21 Opens: 752 Flush tables: 1 Open tables: 745 Queries per second avg: 86.607
有关 mysqladmin 命令和示例的更多信息,请阅读:Linux 中用于 MySQL 管理的 20 个 mysqladmin 命令
结论
如果你在为自己的工作寻找一款好的监控工具,我推荐mytop和innotop。我以前依赖 mytop 进行日常监控,但现在我转向了innotop,因为它可以显示更多的统计数据和信息,包括重要的交易。