ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

6.23_____测试中常见性能问题归纳

2022-06-24 10:04:28  阅读:158  来源: 互联网

标签:_____ 归纳 数据库 连接数 死锁 线程 6.23 cpu 连接池


常见性能问题:
问题一:压力测试中TPS一直上不去
网络带宽
分析思路:
在压力测试中,有时候要模拟大量的用户请求,如果单位时间内传递的数据包过大,超过了带宽的传输能力,那么就会造成网络资源竞争,间接导致服务端接收到的请求数达不到服务端的处理能力上限。
 
连接池
可用的连接数太少,造成请求等待。连接池一般分为服务器连接池(比如Tomcat)和数据库连接池(或者理解为最大允许连接数也行)。(关于连接池的具体内容,可参考之前的博客:性能测试:连接池和线程)
 
4、数据库配置
高并发情况下,如果请求数据需要写入数据库,且需要写入多个表的时候,如果数据库的最大连接数不够,或者写入数据的SQL没有索引没有绑定变量,抑或没有主从分离、读写分离等,就会导致数据库事务处理过慢,影响到TPS。
6、硬件资源
包括CPU(配置、使用率等)、内存(占用率等)、磁盘(I/O、页交换等)。
7、业务逻辑
业务解耦度较低,较为复杂,整个事务处理线被拉长导致的问题。



一、容量(压力)测试过程中cpu过高----这个要考虑压了多少用户
结果:cpu却到了80%多,指标是不能超过60%。
解决思路:如果是cpu过高,先把消耗cpu最多的进程找出来(top命令),再找到该线程下消耗cpu过高的是哪几个线程,再把该线程处理掉

二、内存溢出(堆溢出、栈溢出、持久代溢出)
解决思路:1、调整堆内存参数,一般是增加堆内存
    2、减少批处理数据量

三、线程死锁:容量(压力)测试压测一段时间后,报连接超时
解决思路:
1、造成这种现象的原因很多,比如带宽不够,中间件线程池不够用,数据库连接池不够,连接数占满等都会造成连接不上而报超时 错误
2、找到死锁的线程,分析对应的代码


四、数据库死锁
       解决思路:
1、造成这种现象的原因很多,比如带宽不够,中间件线程池不够用,数据库连接池不够,连接数占满等都会造成连接不上而报超时错误。

2、(重点)数据库日志中搜索block,能搜到block的话就是存在数据库死锁,找到日志,查看对应的sql,优化造成死锁的sql。

五、数据库连接池不释放
上一次是通过日志分析或者查看代码,数据库连接部分是不是有创建连接但是没有关闭连接的情况。基本就是这种情况导致的,修改代码即可。

标签:_____,归纳,数据库,连接数,死锁,线程,6.23,cpu,连接池
来源: https://www.cnblogs.com/xukairoot/p/16407687.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有