Java服务程序突然变慢,如何定位? |
您所在的位置:网站首页 › csgo突然变得特别卡原因是什么 › Java服务程序突然变慢,如何定位? |
检查网络是否存在问题
最先排查的原因就应该是网络问题,即外部因素。常见的着手方法是测试网速,这里推荐工具speedtest,当然类似的有很多: 1)安装: $ wget https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py $ chmod a+rx speedtest.py $ mv speedtest.py /usr/local/bin/speedtest $ chown root:root /usr/local/bin/speedtest 2)调用命令测试 $ speedtest 转自:https://blog.csdn.net/Beyond_F4/article/details/80497118 更深层次的网络问题排查可以参见:http://www.cnblogs.com/Security-Darren/p/4700387.html 2. 检查日志 首先检查程序日志,看有哪些异常被抛出,有没有类似内部错误的不正常的异常被抛出; 如果使用tomcat部署,还需检查tomcat的日志。 3. 测试响应时间 如果以上的都没有问题,可以再次测试程序响应时间,注意:主要是为了测试服务响应时间,即服务处理请求构造数据消耗的时间。 通过curl得到http各阶段的响应时间,这可以参考:https://blog.csdn.net/hqzxsc2006/article/details/50547684 #curl -o /dev/null -s -w %{http_code}:%{http_connect}:%{content_type}:%{time_namelookup}:%{time_redirect}:%{time_pretransfer}:%{time_connect}:%{time_starttransfer}:%{time_total}:%{speed_download} www.baidu.com4. 定位线程 查看内存使用:top、free、ps、cat /proc/meminfo 查看磁盘使用:df -h ,例如日志写完等等 尝试查看定位到具体的线程查看原因: 1) ps -ef | grep java 找出最耗CPU的JAVA进程(一般就是服务进程引起) 2) top -Hp "进程ID" 找出最耗时间的JAVA线程 3) jstack "进程ID" | grep "线程ID" |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |