Linux 进程的平均工作集大小

Linux 进程的平均工作集大小,linux,memory,process,linux-kernel,Linux,Memory,Process,Linux Kernel,我正在linux中运行一个可执行文件(c++代码)。我想计算此可执行文件的“平均”工作集大小?我不知道如何进行。有人能帮我吗 linux中有这样做的命令吗 提前感谢受凯撒启发: pid=`ps axo 'pid,ucomm' | grep procname | awk '{print $1;}'` while sleep 15; do grep VmRSS /proc/$pid/status || break; done > /tmp/size awk '{ sum += $2; coun

我正在linux中运行一个可执行文件(c++代码)。我想计算此可执行文件的“平均”工作集大小?我不知道如何进行。有人能帮我吗

linux中有这样做的命令吗

提前感谢

受凯撒启发:

pid=`ps axo 'pid,ucomm' | grep procname | awk '{print $1;}'`
while sleep 15; do grep VmRSS /proc/$pid/status || break; done > /tmp/size
awk '{ sum += $2; count++; } END { print sum/count; }' /tmp/size
受凯撒的启发:

pid=`ps axo 'pid,ucomm' | grep procname | awk '{print $1;}'`
while sleep 15; do grep VmRSS /proc/$pid/status || break; done > /tmp/size
awk '{ sum += $2; count++; } END { print sum/count; }' /tmp/size

你能试试top命令或vmstat看看这个页面吗?谢谢,我如何得到它的平均值?你能试试top命令或vmstat看看这个页面吗?谢谢,我如何得到它的平均值?谢谢,这解决了我的问题。还有一个疑问,vmsat或sar也会做同样的事情吗?因为这是我的friend@mohan:vmstat为您提供系统内存信息。如果您的机器不做其他事情,处于单用户模式,等等,那么比较之前和期间可以让您确定工作集是什么。但在正常操作中,一般来说,会有太多的其他事情发生,从而得出强有力的结论。合成孔径雷达(sar)的方式大致相同。是系统会计,而不是过程会计。不是。谢谢,解决了我的问题。还有一个疑问,vmsat或sar也会做同样的事情吗?因为这是我的friend@mohan:vmstat为您提供系统内存信息。如果您的机器不做其他事情,处于单用户模式,等等,那么比较之前和期间可以让您确定工作集是什么。但在正常操作中,一般来说,会有太多的其他事情发生,从而得出强有力的结论。合成孔径雷达(sar)的方式大致相同。这是系统会计,而不是过程会计。