计算TPS,QPS的方式

qps,tps是衡量数据库性能的关键指标,网上普遍有两种计算方式

TPS,QPS相关概念

QPS:Queries Per Second         查询量/秒,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理查询量多少的衡量标准

TPS :  Transactions Per Second   是事务数/秒,是一台数据库服务器在单位时间内处理的事务的个数。

计算方式一:基于 questions  计算qps,基于  com_commit  com_rollback 计算tps

questions = show global status like 'questions';
uptime = show global status like 'uptime';
qps=questions/uptime com_commit = show global status like 'com_commit';
com_rollback = show global status like 'com_rollback';
uptime = show global status like 'uptime';
tps=(com_commit + com_rollback)/uptime

方法二  基于 com_* 的status 变量计算tps ,qps

show global status where variable_name in('com_select','com_insert','com_delete','com_update');
获取间隔1s 的 com_*的值,并作差值运算
del_diff = (int(mystat2['com_delete']) - int(mystat1['com_delete']) ) / diff
ins_diff = (int(mystat2['com_insert']) - int(mystat1['com_insert']) ) / diff
sel_diff = (int(mystat2['com_select']) - int(mystat1['com_select']) ) / diff
upd_diff = (int(mystat2['com_update']) - int(mystat1['com_update']) ) / diff

tps= Com_insert/s + Com_update/s + Com_delete/s

qps=Com_select/s + Com_insert/s + Com_update/s + Com_delete/s

  

一些结论

总结

Questions 是记录了从mysqld启动以来所有的select,dml 次数包括show 命令的查询的次数。这样多少有失准确性,比如很多数据库有监控系统在运行,每5秒对数据库进行一次show 查询来获取当前数据库的状态,而这些查询就被记录到QPS,TPS统计中,造成一定的"数据污染".

如果数据库中存在比较多的myisam表,则计算还是questions 比较合适。
如果数据库中存在比较多的innodb表,则计算以com_*数据来源比较合适。

  

最新文章

  1. html5 canvas首屏自适应背景动画循环效果代码
  2. The The Garbage-First (G1) collector since Oracle JDK 7 update 4 and later releases
  3. 关于/etc/hosts文件
  4. 帮助理解委托、匿名委托、Lambda表达式还有事件
  5. JAVA设计模式之不变模式
  6. jquery简单笔记(1) - 基础记录
  7. Mongodb副本集
  8. web压力测试 - http_load
  9. SSO之CAS单点登录详细搭建教程
  10. [Everyday Mathematics]20150201
  11. Azure Site Recovery 通过一键式流程将虚拟机故障转移至 Azure虚拟机
  12. 史上最全的JavaScript工作笔记
  13. Fiddler 教程(转)
  14. HDU 2289 Cup(可以二分法,但是除了它的一半?)
  15. 无法启动MYSQL服务”1067 进程意外终止”解决办法
  16. Windows 下python 环境安装
  17. pandas和spark的dataframe互转
  18. 南京邮电大学java第四次实验报告
  19. hibernate主配置文件的配置
  20. ipv4转化为ipv6

热门文章

  1. login SMTP send mail error : Unable to read data from the transport connection: net_io_connectionclosed
  2. 关于list
  3. Hadoop数据压缩技术
  4. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 字体图标(Glyphicons):glyphicon glyphicon-cloud
  5. python --- mysql数据库的操作
  6. SVPWM总结
  7. 【转载】Android Gradle Build Error:Some file crunching failed, see logs for details解决办法
  8. 087-把PHP数组中的元素按随机顺序重新排列shuffle
  9. jsp页面使用<% 语句%> SQL Server数据库报空指针异常(在控制台可以正常执行)
  10. 高级js 变量提升以及自由变量