Linux系统内存消失与slab使用之谜
来源:互联网 发布:linux ls命令终端退出 编辑:程序博客网 时间:2024/06/03 08:41
http://tech.foolpig.com/2012/07/11/linux-memory-slab-inode/
Linux系统内存消失与slab使用之谜
JUL
11
Linux系统内存消失与slab使用之谜
上周发现我们的一台应用服务器上面的内存莫名其妙被吃光,查看所有进程所使用的内存实际只占用了14G左右
按照系统的内存32G来算,应该还有17G左右可用,但是查看可用内存却只有2487M
那么还有15G左右的内存去哪了呢?
进一步查看meminfo
其中的slab,查看相关资料:
通常的说法是:内核数据结构缓存的大小,可以减少申请和释放内存带来的消耗
这里的说法太笼统了
详细的说法如下:
在linux内核中会有许多小对象,这些对象构造销毁十分频繁,比如i-node,dentry。这么这些对象如果每次构建的时候就向内存要一个页,而其实际大小可能只有几个字节,这样就非常浪费,为了解决这个问题就引入了一种新的机制来处理在同一页框中如何分配小存储器区,这个机制可以减少申请和释放内存带来的消耗,这些小存储器区的内存称为Slab
在suse和ubuntu中查看meminfo会发现他们将slab分的很清楚,包括SReclaimable和SUnreclaim
其中SReclaimable指可收回Slab的大小,SUnreclaim不可回收的slab大小,但是在redhat之中没有进行区分
通过查看服务器上面的inode(使用df -i),发现已经占用了40%,与同事沟通时发现report_data/generate 目录下很多小文件,造成了大量占用inode,删除掉部分之后,目前inode还占用了16%
这时候可用内存达到了差不多10G左右,meminfo中的slab占用在4G左右了。
- Linux系统内存消失与slab使用之谜
- linux内存管理之slab系统
- Linux内核内存管理之SLAB内存管理算法(三) --slab对象的分配与释放
- LINUX 2.6.37内存管理 SLAB分析之(2)SLAB缓冲创建与销毁
- LINUX 2.6.37内存管理 SLAB分析之(3)SLAB对象分配与释放
- Linux内存管理之slab机制(创建slab)
- Linux内存管理之slab机制(销毁slab)
- linux内存管理slab算法之slab初始化
- Linux内存管理之slab分配器分析
- linux内存管理 之 slab分配器
- Linux内存管理之slab分配器分析
- linux 内存管理分析之-----SLAB层
- linux内存管理之slab机制
- Linux内存管理之slab分配器
- linux内存管理--slab
- Linux内核源代码情景分析-内存管理之slab-分配与释放
- Linux内核内存管理之SLAB内存管理算法(三) --基本数据结构及slab分配
- 多核心Linux内核路径优化的不二法门之-slab与伙伴系统
- CentOS sendmail安装及邮件域名配置
- Extjs 4 nested grid or sub grid demo
- SNMP监控一些常用OID
- 字典学习-网友答疑
- poj 2955 Brackets(区间DP,经典问题)求有规律的括号的最大长度
- Linux系统内存消失与slab使用之谜
- 开源中国
- Linux系统修改编码
- cocos2dx 3.0 微信打飞机--005
- 字符串指针。
- Managing Your App's Memory
- 北上广打拼的游子,为何远离亲人,仍义无反顾?
- 金立刘总
- Hibernate OneToOne注解配置