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