暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

linux内存使用率超过95%,如何快速释放降低?

原创 jieguo 2022-06-14
4425

凌晨系统监控告警内存使用率超过95%,为避免告警需要快速将内存使用率降下来。

image.png
从上图可看出内存出现不足,swap已占用2G,原则上需要扩充内存了。

尝试释放缓存但无明显效果:sync; echo 3 > /proc/sys/vm/drop_caches

drop_caches的详细文档如下:
Writing to this will cause the kernel to drop clean caches, dentries and inodes from memory, causing that memory to become free.
To free pagecache:

echo 1 > /proc/sys/vm/drop_caches
To free dentries and inodes:
echo 2 > /proc/sys/vm/drop_caches
To free pagecache, dentries and inodes:
echo 3 > /proc/sys/vm/drop_caches
As this is a non-destructive operation, and dirty objects are notfreeable, the user should run “sync” first in order to make sure allcached objects are freed.
This tunable was added in 2.6.16.

[root@hsfwkt2 ~]# sync; echo 1 > /proc/sys/vm/drop_caches
[root@hsfwkt2 ~]# sync; echo 2 > /proc/sys/vm/drop_caches
[root@hsfwkt2 ~]# sync; echo 3 > /proc/sys/vm/drop_caches
[root@hsfwkt2 ~]# free -g
             total       used       free     shared    buffers     cached
Mem:            47         45          1          0          0          0
-/+ buffers/cache:         45          2
Swap:            7          2          5

临时处理:检查主机应用tomcat占用较多,分配的内存过大,和项目开发人员沟通后降低部分tomcat的jvm内存,修改后,kill进程,重启tomcat。

检查内存占用多的进程:
ps aux | sort -rnk 4 | head -10
image.png

[root@hsfwkt2 ~]# ps -ef|grep 7020
root      40559  39062  0 01:14 pts/1    00:00:00 grep 7020
root      70263      1  0 Apr06 ?        01:35:43 /beahome/jdk1.6.0_45/bin/java -Djava.util.logging.config.file=/beahome/apache-tomcat-7.0.106-7020/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Xms4096m -Xmx4096m -XX:PermSize=512m -XX:MaxPermSize=1024m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/beahome/apache-tomcat-7.0.106-7020/logs/oom.hprof -Djdk.tls.ephemeralDHKeySize=2048 -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /beahome/apache-tomcat-7.0.106-7020/bin/bootstrap.jar:/beahome/apache-tomcat-7.0.106-7020/bin/tomcat-juli.jar -Dcatalina.base=/beahome/apache-tomcat-7.0.106-7020 -Dcatalina.home=/beahome/apache-tomcat-7.0.106-7020 -Djava.io.tmpdir=/beahome/apache-tomcat-7.0.106-7020/temp org.apache.catalina.startup.Bootstrap start
root      71287      1  0 Apr06 ?        01:36:16 /beahome/jdk1.6.0_45/bin/java -Djava.util.logging.config.file=/bea/apache-tomcat-7.0.106-7021/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Xms4096m -Xmx4096m -XX:PermSize=512m -XX:MaxPermSize=1024m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/beahome/apache-tomcat-7.0.106-7020/logs/oom.hprof -Djdk.tls.ephemeralDHKeySize=2048 -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /bea/apache-tomcat-7.0.106-7021/bin/bootstrap.jar:/bea/apache-tomcat-7.0.106-7021/bin/tomcat-juli.jar -Dcatalina.base=/bea/apache-tomcat-7.0.106-7021 -Dcatalina.home=/bea/apache-tomcat-7.0.106-7021 -Djava.io.tmpdir=/bea/apache-tomcat-7.0.106-7021/temp org.apache.catalina.startup.Bootstrap start

[root@hsfwkt2 ~]# cd /beahome/apache-tomcat-7.0.106-7020/bin
将4g调整为2G
[root@hsfwkt2 bin]# vi catalina.sh
#!/bin/sh
JAVA_OPTS='-Xms2048m -Xmx2048m -XX:PermSize=512m -XX:MaxPermSize=1024m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/beahome/apache-tomcat-7.0.106-7020/logs/oom.hprof'
[root@hsfwkt2 bin]# kill -9 70263

[root@hsfwkt2 bin]# sync; echo 3 > /proc/sys/vm/drop_caches

[root@hsfwkt2 bin]# ./startup.sh
Using CATALINA_BASE:   /beahome/apache-tomcat-7.0.106-7020
Using CATALINA_HOME:   /beahome/apache-tomcat-7.0.106-7020
Using CATALINA_TMPDIR: /beahome/apache-tomcat-7.0.106-7020/temp
Using JRE_HOME:        /beahome/jdk1.6.0_45
Using CLASSPATH:       /beahome/apache-tomcat-7.0.106-7020/bin/bootstrap.jar:/beahome/apache-tomcat-7.0.106-7020/bin/tomcat-juli.jar
Using CATALINA_OPTS:   
Tomcat started.

image.png
同理调整多个tomcat的jvm后,内存释放:
image.png
由于应用较多,建议物理内存扩大到64G避免内存占用过高。

最后修改时间:2022-06-14 12:53:08
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论