若是was出現CPU使用率長時間在90%以上,能夠按以下方法收集數據並解決問題。java
案例以下:正則表達式
經過TOP命令發現was佔用CPU比較高線程
IBM官方一個腳本,能夠分析出該進程下那個線程佔用CPU太高code
使用方法以下:進程
sh linperf.sh pid
執行完該腳本會生成3個javacore和一個linperf_RESULTS.tar.gz文件 。class
解壓linperf_RESULTS.tar.gz,能夠根據生成的文件來查看佔用CPU較高的線程,方法以下:搜索
在top.out文件中能夠看到佔用CPU最高的進程是:方法
在topdashH.29218.out文件中,能夠看到該進程下全部的線程:im
以線程28182爲例:28182(十進制)---->6E16(十六進制)數據
在JAVACORE中搜索該線程,查看該線程的堆棧信息以下:
以線程12286爲例:12286(十進制)---->2FFE(十六進制)
在JAVACORE中搜索該線程,查看該線程的堆棧信息以下:
從JAVACORE中的線程堆棧信息中能夠看出來,形成CPU太高的線程均在作正則表達式匹配操做。
參考鏈接:
http://www-01.ibm.com/support/search.wss?rs=180&tc=SSCMPB9+SSCMP9J&q=MustGatherDocument