【Linux】查看系統內存占用


1.查看內存情況

  • free -h

解釋下基本概念

Mem 內存的使用信息
Swap 交換空間的使用信息
total 系統總的可用物理內存大小
used 已被使用的物理內存大小
free 還有多少物理內存可用
shared 被共享使用的物理內存大小
buff/cache 被 buffer 和 cache 使用的物理內存大小
available 還可以被使用的物理內存大小(即系統可用內存約等於free+shared+buff/cache)

2.top查看內存占用,shift+m按MEN占用降序

top詳解請參考:https://www.cnblogs.com/zhoug2020/p/6336453.html

 可以看出PID為45685的進程占用內存較多

 3.查看45685進程的線程情況

  • ps p 45685 -L -o pcpu,pmem,pid,tid,time,tname,cmd

 PID:45685的進程產生了很多線程。

4.使用ps命令:

  • ps -ef | grep java | grep -v grep

查看當前java進程列表

可以看到java進程是Tomcat的啟動進程,開啟多個Tomcat啟動進程,並且是同一個端口。由此,可以判斷,是因為關閉Tomcat服務時,java進程沒有自動關閉,導致內存沒有釋放。

5.使用lsof命令:

  • lsof | grep java |grep -v grep >> 1.log

查看當前進程的運行狀態

  • vi 1.log 

按:輸入/ESTABLISHED,找到正常運行的進程

發現307100的進程運行正常

 

kill掉其余的進程

  • kill -9 PID

 

 原文鏈接:https://www.cnblogs.com/eeexu123/p/10913389.html

最后定位到是tomcat運行的jenkins的問題,具體問題正在排查。

排查的過程中起初以為是tomcat內存優化的問題,特此找到tomcat正確的jvm內存配置方案。

原文鏈接: https://blog.csdn.net/acwa123/article/details/72626921

Tomcat並不建議直接在catalina.sh里配置變量,而是寫在與catalina同級目錄(bin目錄)下的setenv.sh里。

所以如果我們想要修改jvm的內存配置,那么我們就需要修改setenv.sh文件(如果沒有就新建一個setenv.sh),寫入(大小根據自己情況修改):

export CATALINA_OPTS="$CATALINA_OPTS -Xms1600m"
export CATALINA_OPTS="$CATALINA_OPTS -Xmx1600m"
export CATALINA_OPTS="$CATALINA_OPTS -XX:MaxPermSize=256m"



免責聲明!

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



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