一、怎么确定系统到达了性能瓶颈
1、吞吐量不再随着并发量增加而增加
2、吞吐量下降
3、程序性能指标不达标,包括吞吐量、响应时间、错误率、资源占用率
二、排查思路
分层思路:
(1)先客户端再服务端 (2)先硬件资源再应用程序 (3)JAVA应用程序:JVM虚拟机层、WEB服务器层、代码层面
1、客户端
客户端出现瓶颈现象,加大线程数量,请求数不再增加 排查方向 网络带宽、端口占用情况、CPU使用率、内存使用率、磁盘使用率 优化方法 1、硬件资源不足:增加单机的硬件资源配置 2、单机硬件硬件配置没有优化空间:考虑集群,比如jmeter集群
2、服务端
2.1 网络瓶颈 到达网络瓶颈现象:
网络带宽占满?请求数增加的情况下,服务器其他资源使用率不高,网络使用率很高
排查方法:
iperf3: 检测网络速度工具 iftop监控工具:查看每个 某个ip的某个端口号网络使用情况,比如:接收流量、发送流量、总流量、流量峰值、平均流量等 尝试增加网络带宽,查看吞吐量是否增加,如果有增加,说明是网络到达瓶颈,限制了系统性能的提升
优化方法:
1、增加网络带宽 2、减少数据传输量:比如压缩传输,比如减少不必要的数据传输
2.2 磁盘瓶颈 到达磁盘瓶颈现象:
1、请求数增加的情况下,服务器其他资源使用率不高,磁盘使用率很高,比如90%以上 2、请求数增加的情况下,服务器其他资源使用率不高,磁盘使用率也不高,可能是磁盘故障了,比如部分不可用,或者磁盘本身的IO性能低,读写速度慢,遇到有大量文件处理,比如图片存储、大量日志、安装了数据库软件等情况,处理速度低,影响整体的性能
排查方法&#x