如何测量solaris进程的内存使用情况?

如何检查solaris进程消耗多less内存? 我想要分配的总地址空间和驻留在RAM中的数量。

我试着用一些awk脚本总结pmap输出,但是这是一个丑陋的黑客。 有没有更好的方法来编写脚本?

  1. prstat -s rss

    '-s'通过rss列对prstat输出进行sorting(请参阅其他列的手册页)。 也可以尝试每个用户累积的“-a”选项。

  2. ps -eo pid,pmem,vsz,rss,comm | sort -rnk2 | head

    十大RAM用户。 '-o pmem'显示常驻内存的百分比,即进程使用的内存。

  3. ls -lh /proc/{pid}/as

    显示进程总地址空间(vsz)的简单方法。 与pgrep结合使用可以积累用户,模式,…例如:

     for pid in `pgrep -U webserver`; do ls -lh /proc/$pid/as; done 

那么,我阅读了一些手册页后,我得到了以下

 ps -o vsz -p $PID | tail -1 

这很简单。 居民身份的格式是rss。

 prstat 

或者也许是一个dtrace脚本?

我在脚本中使用了这个输出的变体:

 # prstat -Z 1 1 | tail -3 ZONEID NPROC SWAP RSS MEMORY TIME CPU ZONE 220 56 1057M 413M 0.3% 1:26:49 0.1% 820f6ce5-7e37-4455-80ab-b28c5de19b43 Total: 56 processes, 169 lwps, load averages: 0.07, 0.06, 0.06 

我的$ .02作为Zenoss社区pipe理器…

Zenoss可以监控所有networking设备和服务器的运行状况,以及服务器上运行的进程。 我们的一位社区成员最近通过SNMP提交了Process Monitoring for Solaris: http : //community.zenoss.org/docs/DOC-5882