前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >机器内存耗尽了?

机器内存耗尽了?

作者头像
jeanron100
发布2021-05-11 14:37:17
7330
发布2021-05-11 14:37:17
举报

今天发现一些应用所在的机器其JVM只占了总共8G中2G的空间。Page cache也只占了1个G,但是free -g出来内存确已耗尽:

代码语言:javascript
复制
free -g
        total  used   free shared buffers cached
Mem:      7    7       0       0     0     1

这个看上去很吓人。遇到这种情况,我们先cat /proc/meminfo看下具体的内存占用情况

代码语言:javascript
复制
cat /proc/meminfo
MemTotal: 8123456KB (8G)
......
Slab:   3671234KB (3.6G)
SReclaimable: 351234 (3.5G)

我们可以看到有将近3.6G被耗尽在Slab这一项里面,紧接着下面一项SReclaimable,表示这3.6个G中可回收的为3.5G。而这部分都统计在used里面,所以看上去吓人。

什么导致了slab过高

我们可以slabtop一下

代码语言:javascript
复制
slabtop
3123456K(3.1G) dentry

发现是目录项导致。这可能是内核访问了一个拥有特别多文件的文件夹导致。不过由于可回收,所以我们不用太担心。

手动清理

我们可以通过

代码语言:javascript
复制
echo 2 > /proc/sys/vm/drop_caches

手动清理可回收的slab内存。不过,清理当时,会对上面跑的应用有一定的影响。最好先下流量再做操作。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-05-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 杨建荣的学习笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么导致了slab过高
  • 手动清理
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档