linux查看rss内存,linux rss 内存

登录问题Linux服务器。

执行free和top命令确认不存在占用大量内存的进程。

执行如下命令,

统计所有进程占用的物理内存,相加后与free命令结果进行核对,确认是否有偏差。

ps aux|awk '{sum+=$6} END {print sum/1024}'

如果确认无偏差

后,

为了进一步排查进程消耗内存

,可执行如下命令,根据rss列排序结果,核实最大消耗内存进程。

ps -eo pid,rss,pmem,pcpu,vsz,args --sort=rss

如上述步骤中,均未查找出异常进程,

则继续执行以下操作,

检测slab内存分配器占用情况,执行如下命令。

cat /proc/meminfo | awk '{sum=$2/1024} {print $1 sum " MB"}'

注:以上命令执行过程中将默认的KB单位换算为了MB单位。

分析slab列的内存占用情况,核实内存占用是否较高。

注:分析slab内存详细占用情况,常用为atop工具。

运行atop命令即可观察详细信息,如下图所示,根据显示信息,验证为slab占用内存过高导致的问题。

注:

CentOS版本安装atop工具的

命令为

yum install atop

Ubuntu版本安装atop工具的

命令为

apt-get install atop

更详细的slab占用分析,需要执行slabtop命令观察,执行结果如下图所示。通过命令结果,定位原因为slab中的dentry占用大量内存。

dentry占用内存较高,常见原因是程序频繁的创建、删除不同名称的文件。针对此问题执行如下步骤即可解决问题,执行如下命令,手动清除slab缓存临时释放内存空间。

echo 2>/proc/sys/vm/drop_caches

注:建议操作之前执行sync命令,将内存里的数据写入到磁盘里。

检查

/etc/sysctl.conf

文件中的如下字段,并设定合适的阈值。当系统内存达到阈值时,触发自动回收。

vm.min_free_kbytes

最后需要排查业务中的大量IO操作逻辑,并尝试优化。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值