Mysql 监控性能状态 QPS/TPS
原创 2016-02-05 杜亦舒 性能与架构
QPS(Query per second) 每秒查询量
TPS(Transaction per second)每秒事务量
这是Mysql的两个重要性能指标,需要经常查看,和Mysql基准测试的结果对比,如果值过高,就要尽快处理了
计算方法
01
QPS
QPS = Queries / Seconds
Queries 是系统状态值--总查询次数,可以通过 show status 查询得出
Seconds 是监控的时间区间,单位为秒
例如采样10秒内的查询次数,那么先查询一次Queries值(Q1),等待10秒,再查询一次Queries值(Q2)
QPS = (Q2 - Q1) / 10
02
TPS
mysql中没有直接的事务计数器,需要通过事务提交数和事务回滚数来计算
TPS = (Com_commit + Com_rollback) / Seconds
Com_commit、Com_rollback 的值通过 show status 查询得出
计算思路与 QPS 相似
统计脚本
上面是QPS/TPS的统计思路,实际操作中如果用手动方式计算很不方便,最好用程序实现
mysqladmin 的 extended-status 指令和 show status 差不多,可以查看mysql的状态值,如
# mysqladmin -uroot -p'密码' extended-status
其中含有我们需要的状态值,那么就可以分析extended-status的结果信息,然后计算,最后显示出来
统计目标
每隔一秒统计一次 QPS、TPS
mysql 还有两个信息比较重要:
Threads_connected 当前连接的线程的个数
Threads_running 运行状态的线程的个数
这两个值也在extended-status的结果中,所以可以一道显示出来
最后统计结果信息包括:
QPS、TPS、Threads_connected、Threads_running
先看下统计结果的展现形式
基本思路
每秒钟运行一次extended-status,使用awk分析结果值,从中筛选出我们需要的值:
Queries、Com_commit、Com_rollback、Threads_connected、Threads_running
QPS = Queries值 - 上一次的值
TPS = (Com_commit值 - 上一次的值) + (Com_rollback值 - 上一次的值)
因为是1秒钟统计一次,所以计算QPS/TPS时就不用除以秒数了
脚本代码
代码分析
awk是代码中的重点,mysqladmin 的执行结果通过管道传给 awk 进行分析
'BEGIN{flag=0;
print "";
print "QPS   TPS    Threads_con Threads_run ";
print "------------------------------------- "}
这部分是初始设置,打印出表头
flag=0 是设置一个标识位,后面用到
$2 ~ /Queries$/  {q=$4-lq;lq=$4;}
其中 $2 $4 代表某列的内容
awk是按行分析并按空格分割的,例如行信息为:
| Queries | 213263713 |
按空格分割后得到5列:
'|', 'Queries', '|', '213263713', '|'
$2 : Queries
$4 : 213263713
那么这句的意思就是:
当第2列的值匹配‘Queries’时,
变量q = 第4列的值 - 变量lq的值,
变量lq = 第4列的值
变量q 就是 QPS值,用这一次的 Queries值 减去 上一次的值
$2 ~ /Com_commit$/   {c=$4-lc;lc=$4;}
$2 ~ /Com_rollback$/   {r=$4-lr;lr=$4;}
$2 ~ /Threads_connected$/  {tc=$4;}
$2 ~ /Threads_running$/    {tr=$4;
这几句的意思与上一句类似
if(flag==0){
flag=1;
}
这里用到了flag这个标识位,意思是对第一次的分析结果什么都不做,因为这句
{q=$4-lq;lq=$4;}
q=$4-lq; 中的 lq 在第一次分析中还没有值
else {
printf "%-6d %-8d %-10d %d \n", q,c+r,tc,tr;
}
这部分就是打印统计结果信息
下面是脚本代码下载地址,有兴趣的话可以下来实验一下
http://devdd.oss-cn-beijing.aliyuncs.com/mysql_QPS_TPS.txt
awk详细说明:
快速理解linux文本分析利器awk

posted on 2018-08-15 19:29 micwin 阅读(...) 评论(...)  编辑 收藏

转载于:https://www.cnblogs.com/chinanetwind/articles/9483509.html

Mysql 监控性能状态 QPS/TPS相关推荐

  1. mysql qps_Mysql 监控性能状态 QPS/TPS【转】

    QPS(Query per second) 每秒查询量 TPS(Transaction per second)每秒事务量 这是Mysql的两个重要性能指标,需要经常查看,和Mysql基准测试的结果对比 ...

  2. mysql qps如何查看_mysql状态查看 QPS/TPS/缓存命中率查看

    运行中的mysql状态查看 对正在运行的mysql进行监控,其中一个方式就是查看mysql运行状态. (1)QPS(每秒Query量) QPS = Questions(or Queries) / up ...

  3. mysql qps tps 监控_Mysql库TPS,QPS实时监控脚本

    作为一名数据库运维人员,手里都有一些工具脚本,这些都是你提升运维效率,快速排查故障的利器. 在生产上部署MySQL时,都会对同一配置的mysql数据库做QPS和TPS压测,获取QPS和TPS的容量数据 ...

  4. 衡量 mysql性能状态 参数 详解

    MySQL 数据库的性能状态监控点非常之多,其中很多量都是我们不能忽视的必须监控的 量,且90% 以上的内容可以在连接上MySQL Server 后执行"SHOW /*!50000 GLOB ...

  5. Linux日常运维管理技巧(一)监控系统状态、监控网卡流量、监控IO性能、查看系统进程、查看网络状态、Linux下抓包tcpdump、Linux网络相关、DNS配置

    目录 监控系统状态 监控网卡流量 监控IO性能 查看系统进程 查看网络状态 Linux下抓包 Linux网络相关 监控系统状态 w/uptime查看系统负载 [root@zyshanlinux-01 ...

  6. mysql qps 索引查询_【MySQL】MySQL配置调优之 QPS/TPS/索引缓存命中率、innoDB索引缓存命中率、查询缓存命中率查看...

    运行中的mysql状态查看: 对正在运行的mysql进行监控,其中一个方式就是查看mysql运行状态. (1)QPS(每秒Query量) QPS = Questions(or Queries) / s ...

  7. mysql状态监控_mysql 状态监控

    运行中的mysql状态查看 对正在运行的mysql进行监控,其中一个方式就是查看mysql运行状态. (1)QPS(每秒Query量) QPS = Questions(or Queries) / se ...

  8. mysql 缓存监控_MySQL监控性能的一些方法总结

    ---首先, Oracle中的逻辑读对应物理读的概念,是在利用数据缓存区的技术上,对数据访问次数的计数分类.---物理读,真正有IO:逻辑读,是从缓存区读到数据,可以考察缓存区的命中率,但只是某个具体 ...

  9. linux mysql 内存监控_MySQL监控性能的一些方法总结

    ---首先, Oracle中的逻辑读对应物理读的概念,是在利用数据缓存区的技术上,对数据访问次数的计数分类. ---物理读,真正有IO:逻辑读,是从缓存区读到数据,可以考察缓存区的命中率,但只是某个具 ...

最新文章

  1. java向另一activity输入_Android中调用另一个Activity并返回结果-以模拟选择头像功能为例...
  2. linux module原理,NodeJS的模块原理
  3. 【CodeForces - 485B】Valuable Resources (贪心,水题,几何相关)
  4. 机器学习与计算机视觉(开篇)
  5. 51单片机入门教程(5)——定时器中断
  6. 燃烧我的卡路里 ---- Flutter瘦内存瘦包之图片组件
  7. 使用swoole作为MQTT客户端并接收实现即时消息推送
  8. ssh无密码登录_3个简单步骤即可完成无密码SSH登录
  9. hibernate教程笔记7
  10. python绘制密度图
  11. Android ASCII编码转换成相对应字符
  12. Multisim破解教程
  13. java垃圾回收的方法_java垃圾回收的方法都有哪些
  14. 分享一个免费开源的视频录制软件(OBS)
  15. 致移动开发的后10年
  16. 【每日一练】21—CSS实现炫酷动画背景
  17. g2o学习记录(4)cmake-gui再次编译g2o及不太完美的处理cs.h错误[20190323已找到完美解决方案](非干货纯记录,可不看)
  18. 电脑卡住点什么都没反应怎么解决
  19. 计算机组成原理学习笔记(7.I/O系统)
  20. 使用Opencv+VS2015做数字图像识别

热门文章

  1. linux less 阻塞输出,linux – `less`命令显示输出所用的时间
  2. sigar-amd64-linux.so,sigar,no libsigar-amd64-linux.so in java.library.path
  3. Java写一个app控制电机_java控制步进电机
  4. vue导入静态js_vue引入静态js文件的方法
  5. BicycleGAN详解与实现
  6. android怎么看错误日志,android运行错误日志帮看下 不懂啊
  7. 函数重载函数的引用算重载吗_了解C ++中的函数重载
  8. mvp+dagger2_Android MVP + Dagger2 +改造+ RxJava
  9. 解决ubuntu下arduino IDE的Serial Port无法选择问题
  10. 开课吧:数据分析的价值体现在哪些方面?