此文已由作者刘林霞授权网易云社区发布。
欢迎访问
现象描述
不管是性能测试中,还是生产环境中,经常会遇到响应时间过长的问题。
响应时间是性能评估的一个重要指标,会对最终用户产生直接影响,一个产品是快是慢,响应时间是最直观的感受。
因此面对响应时间长的问题,一定想尽办法消灭它。
以下定位方法是针对比较典型的nginx+tomcat应用架构。
排查思路及方法说明
常见有两种表现:偶现极少量的请求出现响应时间偏长,或者会有大量、批量的请求响应时间长。
对偶然出现的少量响应时间长的问题,可能是外部影响、网络异常等造成。
偶然出现少量响应时间过长时,可以排查以下几个方面来定位问题,
查看当时服务器日志是否有错误;
检查服务器资源使用情况是否正常,load average、CPU使用率(尤其是单核CPU)是否有飙高现象;
检查是否出现磁盘短暂负载较高,比如iostat util%飙高等;
确认当时网络情况是否正常,是否有网络丢包等现象。
以上排查建议在有全面监控的基础上进行,偶现问题比较难定位,有全面的监控数据进行排查就方便多了。
案例1:单核CPU使用率高导致偶现响应时间长
某产品线上出现少量的响应时间长的问题,定位结果发现是两个CPU密集型服务部署在同一台机器上,其中一个服务会使得单个CPU使用率100%,导致另一个服务出现少量请求响应慢。解决办法是服务隔离。
如果出现比较多的响应时间过长,首先要排查所有服务器是否存在资源使用瓶颈,</