记一次Linux系统内存占用较高得排查

小菜鸟 2017-08-08

背景:收到报警,系统的内存使用率触发阈值(部分图是后补的)

mem1

1,登陆系统,使用命令查看内存分配

top按M

mem2

free-m

mem3

atop

看下内存分配(cat/proc/meminfo也可以看到一些细化的内存使用信息)

mem4

2,发现cache才1.7g,slab非常高,4.4g,slab内存简单理解为是系统占用的

使用slabtop继续分析

mem5

3,看到proc_inode_cache使用的最多,这个代表是proc文件系统的inode的占用的。

4,查进程,但是进程不多,再查线程,可以通过如下命令进行检查。

ps-eLf

得到如下的结果:(没有原图了,这里补得图,用云盾做介绍)

mem6

计算socket

ll/proc/22360/task/*/fd/|grepsocket|wc-l

mem8

ll/proc/22360/task/*/fd/|wc-l

计算一下有多少fd

mem7

5,每个socket的inode也不一样

mem9

当时看到的现场有几万个fd,基本全是socket,每个inode都是占用空间的,且proc文件系统是全内存的。所以我们才会看到slab中proc_inode_cache内存占用高

后续:

优化相关的server端~

本文为云栖社区原创内容,未经允许不得转载,如需转载请发送邮件至[email protected];如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:[email protected]进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。

用云栖社区APP,舒服~

【云栖快讯】阿里云数据库MySQL金融版发布,实现日志多副本同步复制,提供金融级可靠性!8月10日,阿里云数据库掌门人褚霸等大牛直播,揭开它的背后故事!赶紧报名吧详情请点击

评论文章(0)(0)(0)分享到:

上一篇:记一次数据盘挂载mount:wrongfstype,badoption,badsuperblockon/dev/vdb1的排查

相关文章

记一次Node.js应用内存暴涨分析阿里云ECSUbuntu14.04无法访问之磁盘…如何用十条命令在一分钟内检查Linux服务器性能转用

相关推荐