mysql qps tps 区别一般数值是多少

1683人阅读
架构(14)
一.系统吞度量要素:& 一个系统的吞度量(承压能力)与request对CPU的消耗、外部接口、IO等等紧密关联。单个reqeust 对CPU消耗越高,外部系统接口、IO影响速度越慢,系统吞吐能力越低,反之越高。系统吞吐量几个重要参数:QPS(TPS)、并发数、响应时间&&&&&&& QPS(TPS):每秒钟request/事务 数量&&&&&&& 并发数: 系统同时处理的request/事务数&&&&&&& 响应时间:
一般取平均响应时间(很多人经常会把并发数和TPS理解混淆)理解了上面三个要素的意义之后,就能推算出它们之间的关系:QPS(TPS)= 并发数/平均响应时间&&&&&&& 一个系统吞吐量通常由QPS(TPS)、并发数两个因素决定,每套系统这两个值都有一个相对极限值,在应用场景访问压力下,只要某一项达到系统最高值,系统的吞吐量就上不去了,如果压力继续增大,系统的吞吐量反而会下降,原因是系统超负荷工作,上下文切换、内存等等其它消耗导致系统性能下降。决定系统响应时间要素我们做项目要排计划,可以多人同时并发做多项任务,也可以一个人或者多个人串行工作,始终会有一条关键路径,这条路径就是项目的工期。系统一次调用的响应时间跟项目计划一样,也有一条关键路径,这个关键路径是就是系统影响时间;关键路径是有CPU运算、IO、外部系统响应等等组成。二.系统吞吐量评估:我们在做系统设计的时候就需要考虑CPU运算、IO、外部系统响应因素造成的影响以及对系统性能的初步预估。而通常境况下,我们面对需求,我们评估出来的出来QPS、并发数之外,还有另外一个维度:日PV。通过观察系统的访问日志发现,在用户量很大的情况下,各个时间周期内的同一时间段的访问流量几乎一样。比如工作日的每天早上。只要能拿到日流量图和QPS我们就可以推算日流量。通常的技术方法:&&&&&&& 1. 找出系统的最高TPS和日PV,这两个要素有相对比较稳定的关系(除了放假、季节性因素影响之外)&&&&&&& 2. 通过压力测试或者经验预估,得出最高TPS,然后跟进1的关系,计算出系统最高的日吞吐量。B2B中文和淘宝面对的客户群不一样,这两个客户群的网络行为不应用,他们之间的TPS和PV关系比例也不一样。A)淘宝淘宝流量图:淘宝的TPS和PV之间的关系通常为& 最高TPS:PV大约为 1 : 11*3600 (相当于按最高TPS访问11个小时,这个是商品详情的场景,不同的应用场景会有一些不同)B) B2B中文站B2B的TPS和PV之间的关系不同的系统不同的应用场景比例变化比较大,粗略估计在1 : 8个小时左右的关系(09年对offerdetail的流量分析数据)。旺铺和offerdetail这两个比例相差很大,可能是因为爬虫暂的比例较高的原因导致。在淘宝环境下,假设我们压力测试出的TPS为100,那么这个系统的日吞吐量=100*11*万这个是在简单(单一url)的情况下,有些页面,一个页面有多个request,系统的实际吞吐量还要小。无论有无思考时间(T_think),测试所得的TPS值和并发虚拟用户数(U_concurrent)、Loadrunner读取的交易响应时间(T_response)之间有以下关系(稳定运行情况下):TPS=U_concurrent / (T_response+T_think)。并发数、QPS、平均响应时间三者之间关系转自
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:516206次
积分:6074
积分:6074
排名:第3098名
原创:114篇
转载:51篇
评论:125条
/qifengdao
文章:21篇
阅读:171452
(2)(1)(1)(3)(1)(1)(5)(1)(2)(1)(4)(2)(2)(1)(1)(1)(4)(3)(1)(1)(1)(7)(4)(2)(3)(2)(1)(3)(1)(5)(3)(3)(1)(4)(1)(3)(2)(3)(7)(8)(9)(5)(3)(3)(5)(3)(11)(3)(13)(8)(1)(1)mysql状态查看 QPS/TPS/缓存命中率查看 - zping - 博客园
随笔 - 273
评论 - 276
运行中的mysql状态查看
对正在运行的mysql进行监控,其中一个方式就是查看mysql运行状态。&
(1)QPS(每秒Query量)&
QPS = Questions(or Queries) / seconds&
mysql & show &global &status like 'Question%';&
(2)TPS(每秒事务量)&
TPS = (Com_commit + Com_rollback) / seconds&
mysql & show global status like 'Com_commit';&
mysql & show global status like 'Com_rollback';&
(3)key Buffer 命中率&
mysql&show &global & status &like & 'key%';&
key_buffer_read_hits = (1-key_reads / key_read_requests) * 100%&
key_buffer_write_hits = (1-key_writes / key_write_requests) * 100%&
(4)InnoDB Buffer命中率&
mysql& show status like 'innodb_buffer_pool_read%';&
innodb_buffer_read_hits = (1 - innodb_buffer_pool_reads / innodb_buffer_pool_read_requests) * 100%&
(5)Query Cache命中率&
mysql& show status like 'Qcache%';&
Query_cache_hits = (Qcahce_hits / (Qcache_hits + Qcache_inserts )) * 100%;&
(6)Table Cache状态量&
mysql& show global &status like 'open%';&
比较 open_tables &与 opend_tables 值&
(7)Thread Cache 命中率&
mysql& show global status like 'Thread%';&
mysql& show global status like 'Connections';&
Thread_cache_hits = (1 - Threads_created / connections ) * 100%&
(8)锁定状态&
mysql& show global &status like '%lock%';&
Table_locks_waited/Table_locks_immediate=0.3% &如果这个比值比较大的话,说明表锁造成的阻塞比较严重&
Innodb_row_lock_waits innodb行锁,太大可能是间隙锁造成的&
(9)复制延时量&
mysql & show slave status&
查看延时时间&
(10) Tmp Table 状况(临时表状况)&
mysql & show status like 'Create_tmp%';&
Created_tmp_disk_tables/Created_tmp_tables比值最好不要超过10%,如果Created_tmp_tables值比较大,&
可能是排序句子过多或者是连接句子不够优化&
(11) Binlog Cache 使用状况&
mysql & show status like 'Binlog_cache%';&
如果Binlog_cache_disk_use值不为0 ,可能需要调大 binlog_cache_size大小&
(12) Innodb_log_waits 量&
mysql & show status like 'innodb_log_waits';&
Innodb_log_waits值不等于0的话,表明 innodb log &buffer 因为空间不足而等待&
比如命令:&
虽然可以使用:&
&#show global status like %...%;&
来过滤,但是对应长长的list,每一项都代表什么意思,还是有必要弄清楚。后使用快捷导航没有帐号?
查看: 558|回复: 7
MySQL计算 TPS,QPS 的方式详解
注册会员, 积分 76, 距离下一级还需 124 积分
论坛徽章:2
首先先申明下,本文章是转载的别人的,个人觉得别人总结的很好,贴到这里大家一起学习下。
qps,tps 是衡量数据库性能的关键指标
概念介绍:
QPS:Queries Per Second& && && &查询量/秒,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理查询量多少的衡量标准。
TPS :&&Transactions Per Second& &是事务数/秒,是一台数据库服务器在单位时间内处理的事务的个数。
如何计算:
从网上查看如果获取mysql 的qps,tps 的方法有如下两种:
方法一 基于 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
本文转载至http://blog.itpub.net//viewspace-767265/
注册会员, 积分 175, 距离下一级还需 25 积分
论坛徽章:3
收藏下,以后留着用
注册会员, 积分 112, 距离下一级还需 88 积分
论坛徽章:5
顶一下,学习了。。。。
金牌会员, 积分 2033, 距离下一级还需 967 积分
论坛徽章:12
不错!!!!!!!!!!!!!!!!!!!!!!
新手上路, 积分 14, 距离下一级还需 36 积分
论坛徽章:2
参考不同的方法,互相借鉴
金牌会员, 积分 1303, 距离下一级还需 1697 积分
论坛徽章:39
学些了,不错,谢谢分享。
金牌会员, 积分 1667, 距离下一级还需 1333 积分
论坛徽章:18
谢谢推荐的计算公式,不错的东西
注册会员, 积分 166, 距离下一级还需 34 积分
论坛徽章:4
MARK一下,以便日后查询
扫一扫加入本版微信群博客访问: 6009195
博文数量: 989
注册时间:
ITPUB论坛APP
ITPUB论坛APP
APP发帖 享双倍积分
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
分类: Linux
& & 在做db基准测试的时候,qps,tps 是衡量数据库性能的关键指标。本文比较了网上的两种计算方式。先来了解一下相关概念。概念介绍:QPS:Queries Per Second & & & & 查询量/秒,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理查询量多少的衡量标准。TPS : &Transactions Per Second & 是事务数/秒,是一台数据库服务器在单位时间内处理的事务的个数。&如何计算:从网上查看如果获取mysql 的qps,tps 的方法有如下两种:方法一 基于 questions &计算qps,基于 &com_commit &com_rollback 计算tpsquestions = show global status like 'questions';uptime = show global status like 'uptime';qps=questions/uptimecom_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']) ) / diffins_diff = (int(mystat2['com_insert']) & &- int(mystat1['com_insert']) ) / diffsel_diff = (int(mystat2['com_select']) & &- int(mystat1['com_select']) ) / diffupd_diff = (int(mystat2['com_update']) & - int(mystat1['com_update']) ) / diff上述计算方法的值准确合适吗?下图是我手工做测试的结果:a 针对mysql innodb 表的dml 操作做了各个量的统计,结果如下:由上图可以得出结论:1 com_commit, com_rollback 与显示指定transaction无关,只和显式提交commit rollback 有关。2 不管dml的结果是否成功,com_* 都会增加1 。b 针对myisam 表的测试:1 对于myisam 表 进行dml操作 只有questions 改变其他值不变。2 对于myisam 存储引擎使用com_* 计算其tps,qps 是不准确的,使用questions 的值计算相对比较合适。利用脚本使用不同的变量获取数据库的qps,tps 的对比图:qps_s & & &是基于 com_selectqps_ques 是基于 questions ,tps_iud & &是基于 com_insert, com_update,com_delete 之和,tps_com_rol是基于 com_commit com_rollback 之和由上图可以查看 基于questions 要比基于com_select的数值要大,因为questions本身是所有db访问的集合。总结:Questions 是记录了从mysqld启动以来所有的select,dml 次数包括show 命令的查询的次数。这样多少有失准确性,比如很多数据库有监控系统在运行,每5秒对数据库进行一次show 查询来获取当前数据库的状态,而这些查询就被记录到QPS,TPS统计中,造成一定的"数据污染".如果数据库中存在比较多的myisam表,则计算还是questions 比较合适。如果数据库中存在比较多的innodb表,则计算以com_*数据来源比较合适。&
阅读(34537) | 评论(1) | 转发(1) |
相关热门文章
给主人留下些什么吧!~~
不理解&“如果数据库中存在比较多的myisam表,则计算还是questions&比较合适。如果数据库中存在比较多的innodb表,则计算以com_*数据来源比较合适。”怎么得来的&针对myisam&表的测试:t3,t4&&没区别啊。&“对于myisam&表&进行dml操作&只有questions&改变其他值不变。”不对吧。com_insert_select,questions不都在变化吗?----
请登录后评论。}

我要回帖

更多关于 tps和qps的区别 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信