一,線上cpu飆升很高怎麼排查?
1.通過top命令或者htop也可以看到哪些pid(進程)的cpu使用率比較高,比如pid=2266這個進程跑java服務佔用百分之70的cpu.
2.如果發現當前進程pid佔用較高,你就可以使用 top -p 2266 ,輸出當前進程,如果想看當前進程下的線程哪個佔用cpu比較高,可以使用命令 top -H -p 2266 查看. 假設 發現線程 2287佔用cpu很高
3.使用printf '%x' 2287 , 如果輸出是: 8ef
4. 使用 jstack 2266 > 2266.txt ,即輸出到一個文件上面.
5.文件裏面搜索 8ef, 例如:
6.去查找代碼,例如:
,最終發現是個死循環(whlie(true))
二.線上環境的JVM都設置多大?
三.線上Java服務器內存飆升是怎麼回事?