后台服务的变慢排查思路(轻量级应用服务器中测试)

在实习时接触的是分布式系统,公司实现了一套系统的日志和性能监控架构,对问题的排查多是查异常日志调接口。近来开始熟悉Linux系统,发觉合格的程序员除了异常这个突破点,也应掌握对系统本身性能问题的诊断能力。就像医生诊断病人一样诊断服务变慢的机器,很好玩的样子。
大概整理出这样的思路:
自上而下,做系统系能分析,主要是CPU,内存和IO三大块
1.通过“top”命令查看负载情况
在这里插入图片描述
第一行load average表示:1分钟平均负载,5分钟平均负载,15分钟平均负载分别是0.02,0.10,0.09。这些值不超过50%也没有明显升高迹象。若短期均值明显高于长期则负载很重。‘
可进一步排查最耗CPU的Java线程

top -H //"-H"表示thread模式,也可配合grep更精准的定位

最后利用jstack获取线程数,对比相应ID即可。
2.内存使用

"free"命令查看内存使用情况

在这里插入图片描述
JVM的性能不接受大量swap的使用
3.IO问题

  • 网络IO
  • 磁盘IO-----"iostat"命令判断磁盘状况
    在这里插入图片描述

JVM 层面的性能分析

jstat -help命令可查看分析GC的具体流程

jstat - [-t] [-h] [ []]

发布了21 篇原创文章 · 获赞 4 · 访问量 1363

猜你喜欢

转载自blog.csdn.net/smile001isme/article/details/104667825