首页 > 其他 > 详细

一次接口压力测试qps极低原因分析及解决过程

时间:2019-06-04 17:23:44      阅读:140      评论:0      收藏:0      [点我收藏+]

一次接口压力测试qps极低原因分析及解决过程

9-2日在做内部的性能测试相关培训时,发现注册接口压力测试qps极低(20左右),这个性能指标远不能达到上线标准 ,经过一系列调试,最后定位 98%的时间都花在对 用户 表 做update更新 (时间达100ms以上)。

涉及sql语句:

update User set loginName=‘q‘
where userId=‘ec171d27-f4a8-478c-b557-dffec8f00826‘

分析问题思路:

1) userId字段没有加索引 验证: 连接数据库之后查看表结构,确实没有做索引。 方案: 给userId加上索引 结果: 未达预期,花费时间基本没变化 分析: 观察表的记录数,才200多条,确实索引不索引对性能影响不会太大,但这个索引还是得加上,只不过没有索引并不是产生这个问题的原因。

2) 数据表的引擎问题 验证: 连接数据库之后查看表结构,引擎为innodb。 方案: 换成myisam 结果: 达到预期,花费时间不到1ms, 再进行压测,qps达1500以上 分析: 猜测是由于innodb配置导致,查看了my.cnf的配置,一切都用默认的配置,其中 innodbflushlogattrx_commit 默认值1的意思是每一次事务提交或事务外的指令都需要把日志写入(flush)硬盘,这是很费时的。

3) 换回innodb,优化配置 验证: 连接数据库之后查看表结构,引擎为myisam。 方案: 换成innodb, 把innodbflushlogattrx_commit设置为2 结果: 达到预期,花费时间不到1ms, 再进行压测,qps达1500以上 分析: 结果验证了之前的设想。

总结, innodb本身在设计上比myisam要先进些,但配置相对复杂,有很多优化的点,希望各位同学能多看些文章,理解innodb和myisam的区别以及innodb的优化方案。


原文地址:http://guangla.lofter.com/post/1d337f35_82fe535

一次接口压力测试qps极低原因分析及解决过程

原文:https://www.cnblogs.com/jpfss/p/10974715.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!