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

#!/bin/bash

mysqladmin-uroot -p'瀵嗙爜' extended-status -i1|awk\'BEGIN{flag=0;

print "";

print"QPS TPS Threads_con Threads_run";

print"-------------------------------------"}

$2 ~ /Queries$/ {q=$4-lq;lq=$4;}

$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; count=0}else{

printf"%-6d %-8d %-10d %d \n", q,c+r,tc,tr;

}

}'

mysql qps_Mysql 监控性能状态 QPS/TPS【转】相关推荐

  1. Mysql 监控性能状态 QPS/TPS

    Mysql 监控性能状态 QPS/TPS 原创 2016-02-05 杜亦舒 性能与架构 QPS(Query per second) 每秒查询量 TPS(Transaction per second) ...

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

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

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

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

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

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

  5. mysql iops qps_Mysql 之 IOPS、QPS、TPS相关问题总结

    IOPS:(Input/Output operations Per Second,既每秒处理I/O的请求次数) IOPS是指存储每秒可接受多少次主机发出的访问,主机的一次IO需要多次访问存储才可以完成 ...

  6. zabbix mysql qps_zabbix监控mysql的tps和qps

    通过zabbix监控mysql的tps和qps,我们之前的percona mysql模板是没有关于这两个监控项的,需要我们通过脚本进行统计分析. 一.脚本思路: #统计qps来源 show globa ...

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

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

  8. mysql qps_mysql QPS 过高问题处理

    概述 在做db基准测试的时候,qps,tps是衡量数据库性能的关键指标.QPS(Queryper second)每秒查询量,TPS(Transactionper second)每秒事务量. QPS:Q ...

  9. mysql状态监控_mysql 状态监控

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

最新文章

  1. 2015年百度之星初赛(1) --- B 找连续数
  2. 003_JSONNull对象介绍
  3. 【Scratch】青少年蓝桥杯_每日一题_8.09_列表
  4. improve怎么加ing_雅思写作7分秘籍:Niko原创大作文写作机经教你怎么得高分!
  5. C语言 数组中删除指定字符
  6. assembly 输出ab中所有数_罗克韦尔(AB)PLC控制器选型(2)-CompactLogix 5370
  7. 前台实现ajax 需注意的地方
  8. Android常用提示框(dialog和popuwindow)
  9. imu预积分_VINS 中的 IMU 预积分推导和代码解读
  10. 安卓的起源是linux么,最后的起源安卓版下载-最后的起源下载v2.1.9-Linux公社
  11. 基于matlab的捷联惯导算法编程(二)
  12. oracle数据库expdp命令,Oracle数据库备份 expdp/impdp导出导入命令
  13. 黑马程序员Python教程的代码--植物大战僵尸游戏代码
  14. 学习笔记 —— 吴恩达《机器学习》课程
  15. java中如何生成随机数
  16. Java DES 加密解密工具类实现
  17. 传奇3服务器配置文件,分享传奇三架设的全部详细攻略
  18. 「 神器 」极简网速监控悬浮窗软件
  19. 硬盘活动分区(将磁盘分区标为活动或取消活动的方法)(转)
  20. 机器学习之支持向量回归(SVR)——南京审计大学金审学院

热门文章

  1. 小孩都看得懂的贝塔分布
  2. vc查看进程PID和关闭进程方法
  3. jcrop java_tapmodo-Jcrop - WEB源码|JSP源码/Java|源代码 - 源码中国
  4. 2021年最新前端面试题(js,vue,webpack,css,react)总结
  5. rsem比对_科学网—FPKM, RPKM, RPM以及TPM的关系之见解 - 江纯阶的博文
  6. matlab 8fsk,8FSK调制解调与仿真.ppt
  7. 如何设置Roav Viva Alexa车载充电器
  8. 如何查看本机端口号是否被占用以及如何关闭相应端口号
  9. php多维数组书写方式,php多维数组用法示例
  10. Mindmanager安装及汉化