用脚本写一个MYSQL监控小工具
这几天在调优mysql性能,想看一下运行中的mysql的性能指标,核心关注的其实就是QPS和TPS,但是对于mysql来说这两个指标默认是没有的,而我又不想为了这几个指标去装一个prometheus,用mysql_exporter去导出。
所以就想写个简单的脚本去完成这个工作,mysql本身的show status 已经有了足够的信息,对于计算指标来说:
QPS = Queries / Seconds |
Queries 是系统状态值–总查询次数,Seconds 是监控的时间区间,单位为秒,例如采样10秒内的查询次数,那么先查询一次Queries值(Q1),等待10秒,再查询一次Queries值(Q2)
QPS = (Q2 - Q1) / 10 |
对于TPS来说mysql中没有直接的事务计数器,需要通过事务提交数和事务回滚数来计算:
TPS = (Com_commit + Com_rollback) / Seconds |
Com_commit、Com_rollback 的值也可以通过 show status 查询得出,除了TPS和QPS外,Threads_connected 当前连接的线程的个数 ,Threads_running 运行状态的线程的个数。
整个脚本内容如下:
!/bin/bash |
awk是代码中的重点,mysqladmin 的执行结果通过管道传给 awk 进行分析,使用mysqladmin的extended-status效果和show status是一样的。
扫码手机观看或分享: