如何检查solaris进程消耗多less内存? 我想要分配的总地址空间和驻留在RAM中的数量。
我试着用一些awk脚本总结pmap输出,但是这是一个丑陋的黑客。 有没有更好的方法来编写脚本?
prstat -s rss
'-s'通过rss列对prstat输出进行sorting(请参阅其他列的手册页)。 也可以尝试每个用户累积的“-a”选项。
ps -eo pid,pmem,vsz,rss,comm | sort -rnk2 | head
十大RAM用户。 '-o pmem'显示常驻内存的百分比,即进程使用的内存。
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