统计系统中所有进程占用内存的方法

统计系统中所有进程所占用的内存的方法

一、首先先来看proc中对应的两个文件,/proc/[pid]/status和/proc/[pid]/statm;

/proc/[pid]/statm的显示如下:
在这里插入图片描述
对应的各个参数的含义为:(单位是页,一页为4KB;与status文件中的各个参数相对应)

statm含义对应status参数
Size (pages)任务虚拟地址空间的大小VmSize/4
Resident(pages)应用程序正在使用的物理内存的大小VmRSS/4
Shared(pages)共享页数
Trs(pages)程序所拥有的可执行虚拟内存的大小VmExe/4
Lrs(pages)被映像到任务的虚拟内存空间的库的大小VmLib/4
Drs(pages)程序数据段和用户态的栈的大小(VmData+ VmStk )/4
Dt(pages)脏页数量

与之相对应的文件为:proc/[pid]/status,包含了该进程的基本上所有的有用信息统计
在这里插入图片描述

二、统计系统中所有进程的物理内存使用情况

基本思路:遍历/proc下所有的进程,并提取statm下的第二列数据相加,得到所有进程使用的物理页情况,最终乘以4即内存使用情况(KB为单位),脚本代码如下:

#/bin/bash                                                                                                      
for PROC in `ls  /proc/|grep "^[0-9]"`
do
  if [ -f /proc/$PROC/statm ]; then                     //遍历整个proc下的进程
      TEP=`cat /proc/$PROC/statm | awk '{print ($2)}'`  //提取每个进程的statm第二列数据
      RSS=`expr $RSS + $TEP`                            //逐个相加
  fi
done
RSS=`expr $RSS \* 4`                                    //将单位为页转换为KB
echo $RSS"KB"


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值