Java问题处理思路
生产环境处理问题小结:
顺着上边的思路,我回家看了一些资料,资料表明当性能出现问题的时候无外乎从四个大的方面入手:CPU、内存、文件IO、网络IO。
我们可以使用TOP命令可以来分析当前CPU使用情况。在TOP中分别有:us、sy、wa、hi这4个指标,这4个指标分别代表是:
网络IO:Java在网络通信时,一般会先将对象序列化为字节流,进行发送,或者是接收字节流并反序列化,这个过程要消耗JVM的堆内存,按资料上的意思是JVM的堆内存大小是有限的,所以一般不会造成网络IO的严重消耗。
以上几种情况 ,我们都可以借助Jstack工具把JVM的线程给Dump出来,可以分析那些线程在等待,那些线程在IO读写,那些线程在死循环。
???????? ?????????????????? 还有一些其它的工具可以帮助我们详细的分析这些状况:pidstat、iostat、sar 、jmap等
当出现问题的时候,我们可以根据某一个指标的数值去有方向的定位问题。
?
参考资料:毕玄的分布式Java应用 第五章,书上写的比较详细,并且有实际案例性能调优,大家有时间可以详细看一下。