压力测试中tps上不去的原因
TPS (transaction per second)代表每秒执行的事务数量,可基于测试周期内完成的事务数量计算得出。例如,用户每分钟执行6个事务,TPS为6 / 60s = 0.10 TPS。
同时我们会知道事务的响应时间(或节拍),以此例,60秒完成6个事务也同时代表每个事务的响应时间或节拍为10秒。
有很多原因,分开分析,大概是下面几个原因:
1、网络带宽:每秒可传递的数据大小有限,并发超过一定阈值,就会造成请求等待或者网络资源竞争
2、连接池:可用的连接数太少,造成请求等待
3、连接池垃圾回收机制:频繁的full GC
4、数据库数据写入:如果数据要入库,写入多个表,且入库的处理SQL没有索引,没有绑定变量,则SQL执行效率太低
5、服务器连接机制:串行 并行 长连接 管道,不同的连接机制造成的请求传输也不同
6、硬件:CPU 磁盘内存不够,页交换频繁等
7、压力机本身的问题
8、业务逻辑:业务复杂,造成的事务处理线被拉长
我大概能想到的就是这些,当然,也有其他原因,不过一般分析性能瓶颈主要从网络 连接池 事务处理逻辑 数据库 硬件 压力机这几个方面考虑
延伸点的话,还有缓存的应用问题,比如缓存命中率太低,缓存穿透,缓存过期造成的原因
比如缓存命中率太低 我们技术总监跟我说过这个词 但是我没理解
延伸点的话,还有缓存的应用问题,比如缓存命中率太低,缓存穿透,缓存过期
http://www.cnblogs.com/imyalost/p/7189455.html
http://blog.csdn.net/wenwen091100304/article/details/48035003
posted on 2018-01-18 13:23 sunny_2016 阅读(773) 评论(0) 编辑 收藏 举报
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步