在LAMP生产服务器上我偶尔会从MYSQL收到"太多连接"错误,我想添加监控以查找原因是否超出了最大连接数限制.
我的问题:如何从mysql或mysqladmin查询当前使用的连接数?(我注意到show status提供了总连接而不是当前使用的连接.)
监控MySQL的一个非常强大的工具是innotop
.你可以在这里找到它:
https://github.com/innotop/innotop
在Debian Lenny中,它是mysql-client-5.0软件包的一部分,我想它也适用于其他发行版.它在监控InnoDB内部功能方面特别强大,但也提供对服务器的一般监控.
在"变量和状态"模式下,它监视变量"Connections"和"Max_used_Connections"(以及其他).它显示绝对值和增量值 - 后者可能会让您了解当前连接.
由于innotop提供了非交互模式,因此您可以通过从一些自定义脚本,nagios检查或您拥有的任何系统调用innotop轻松构建完全自动化的监视.
要获取MySQL允许的并发连接总数,您应该检查
show variables like 'max_connections'
以及当前正在使用多少个并发连接,可以通过
show status like 'max_used_connections'
您应该监视这些变量。如果您需要监视重要MySQL指标的商业工具,可以尝试MySQL Enterprise Monitor,MONyog等。