生產環境CPU太高問題定位

問題描述:
       生產環境下的某臺tomcat7服務器,在剛發佈時的時候一切都很正常,在運行一段時間後就出現CPU佔用很高的問題,基本上是負載一天比一天高。tomcat

解決過程:服務器

    一、根據top命令,發現PID爲2633的Java進程佔用CPU高達300%,出現故障。
    二、找到該進程後,如何定位具體線程或代碼呢,首先顯示線程列表,並按照CPU佔用高的線程排序:
      [root@localhost logs]# ps -mp 2633 -o THREAD,tid,time | sort -rn線程

    顯示結果以下:
       USER     %CPU PRI SCNT WCHAN  USER SYSTEM   TID     TIME
       root     10.5  19    - -         -      -  3626 00:12:48
       root     10.1  19    - -         -      -  3593 00:12:16排序

    三、將須要的線程ID轉換爲16進制格式 進程

       [root@localhost logs]# printf "%x\n" 3626
       e18grep

  四、打印線程的堆棧信息im

     [root@localhost logs]# jstack 2633 |grep e18 -A 30sort

相關文章
相關標籤/搜索