一、使用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原理:點擊查看