本文主要是介绍后台服务的变慢排查思路(轻量级应用服务器中测试),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在实习时接触的是分布式系统,公司实现了一套系统的日志和性能监控架构,对问题的排查多是查异常日志调接口。近来开始熟悉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] [ []]
这篇关于后台服务的变慢排查思路(轻量级应用服务器中测试)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!