1.查看內(nèi)存情況****
- free -h
解釋下基本概念
Mem 內(nèi)存的使用信息
Swap 交換空間的使用信息
total 系統(tǒng)總的可用物理內(nèi)存大小
used 已被使用的物理內(nèi)存大小
free 還有多少物理內(nèi)存可用
shared 被共享使用的物理內(nèi)存大小
buff/cache 被 buffer 和 cache 使用的物理內(nèi)存大小
available 還可以被使用的物理內(nèi)存大?。聪到y(tǒng)可用內(nèi)存約等于free+shared+buff/cache)
2.top查看內(nèi)存占用,shift+m按MEN占用降序
top詳解請參考:https://www.cnblogs.com/zhoug2020/p/6336453.html
可以看出PID為45685的進程占用內(nèi)存較多
** 3.查看45685進程的線程情況**
- ps p 45685 -L -o pcpu,pmem,pid,tid,time,tname,cmd
PID:45685的進程產(chǎn)生了很多線程。
4.使用ps命令:
- ps -ef | grep java | grep -v grep
查看當前java進程列表
可以看到java進程是Tomcat的啟動進程,開啟多個Tomcat啟動進程,并且是同一個端口。由此,可以判斷,是因為關閉Tomcat服務時,java進程沒有自動關閉,導致內(nèi)存沒有釋放。
5.使用lsof命令:
- lsof | grep java |grep -v grep >> 1.log
查看當前進程的運行狀態(tài)
- vi 1.log
按:輸入/ESTABLISHED,找到正常運行的進程
發(fā)現(xiàn)307100的進程運行正常
kill掉其余的進程
- kill -9 PID
原文鏈接:https://www.cnblogs.com/eeexu123/p/10913389.html
最后定位到是tomcat運行的jenkins的問題,具體問題正在排查。
排查的過程中起初以為是tomcat內(nèi)存優(yōu)化的問題,特此找到tomcat正確的jvm內(nèi)存配置方案。
原文鏈接: https://blog.csdn.net/acwa123/article/details/72626921
Tomcat并不建議直接在catalina.sh里配置變量,而是寫在與catalina同級目錄(bin目錄)下的setenv.sh里。
所以如果我們想要修改jvm的內(nèi)存配置,那么我們就需要修改setenv.sh文件(如果沒有就新建一個setenv.sh),寫入(大小根據(jù)自己情況修改):
export CATALINA_OPTS="CATALINA_OPTS -Xmx1600m"
export CATALINA_OPTS="$CATALINA_OPTS -XX:MaxPermSize=256m"
查看linux服務器cpu最簡單的命令是 lscpu







