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"

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沈伟-GodGreat

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值