linux中項目占用cpu、內存過高時的排查經歷


一、使用top命令查看占用高資源的java項目的進程ID(pid): top

 

 

二、查看該進程中的線程所占用資源的情況:top -Hp pid

  

 

三、查看該線程對應的16進制:printf %x 11129

  打印並保存該進程中堆棧的使用信息日志:jstack -l 11095 >> jstack.log

  

 

 四、查看該進程中使用高資源的線程的具體信息日志:vim jstack.log

  查找上一步的16進制的線程id:/2b79

  

   定位到問題代碼;

 

以上是測試所用(自己寫的死循環)

實際排查時卻並沒有發現具體的自己所寫的代碼(是執行引用的包或java自帶方法時出現的問題)

目前並不清楚,原因所在。。。。

 

五、linux中出現占用內存過高的情況時,也可以在tomcat的配置文件中進行內存大小的設置:

  修改TOMCAT_HOME/bin/catalina.sh (改完需要重啟服務)
  位置cygwin=false前添加如下。
    JAVA_OPTS="-server -Xms256m -Xmx512m -XX:PermSize=64M -XX:MaxPermSize=128m" 

  注:-Xmx:java heap(JVM堆)最大值。上述最大值是512M

  具體詳解參考:https://elf8848.iteye.com/blog/378805

  tomcat調優及JVM原理:點擊查看

  tomcat工作原理

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM