第一步,檢查網絡
ping命令檢查網絡域名解析是否正常,ping服務器的延遲是否過大,如果過大可以檢查Ip是否沖突,或者交換機網線是否正常插好,通過nmon還可以查看網絡流量,一般用的千兆交換機理論速率是1000/8=125MB每秒,但是這理論峰值一般都無法達到,所以如果網絡流量達到了80~100MB每秒則可以判定瓶頸在交換機上,也可以用telnet來查看端口訪問是否正常。通過這些方式,首先排除網絡可能出現的問題,如果網絡沒有問題,那就開始第二步
第二步,檢查服務器內存
如果請求響應速度慢,一般跟內存關聯比較大,通過free -m, vmstat 1,nmon工具等方式判斷內存資源是否緊缺,如果內存資源不存在問題,進入第三部
第三步,查看CPU負載
可以通過sar、vmstat、top、nmon等工具或命令判斷cpu是否過載,如果沒有問題那就進行第四步
第四步,檢查磁盤IO
可以通過iostat 1、vmstat 、nmon等命令檢查磁盤的讀寫,如果沒有問題,linux系統自身的性能問題基本排除
第五步,抓取進程堆棧信息
通過jstack -l pid | tee -a out.log 將pid的堆棧信息抓取出來,放到out.log的文件中分析,看是在java進程的哪一步耗時較大,然后針對那部分代碼進行優化