本文共 513 字,大约阅读时间需要 1 分钟。
在实习时接触的是分布式系统,公司实现了一套系统的日志和性能监控架构,对问题的排查多是查异常日志调接口。近来开始熟悉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.内存使用JVM的性能不接受大量swap的使用 3.IO问题"free"命令查看内存使用情况
jstat -help命令可查看分析GC的具体流程
jstat - [-t] [-h] [ []]
转载地址:http://zfrsi.baihongyu.com/