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

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

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

我尝试使用一些 awk 脚本对 pmap 输出进行求和,但这是一个丑陋的黑客行为。有没有更好的方法来编写脚本?

答案1

  1. prstat -s rss

    '-s' 按 rss 列对 prstat 输出进行排序(有关其他列,请参阅手册页)。还可以尝试使用 '-a' 选项进行每个用户的累积。

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

    前 10 个 RAM 消费者。'-o pmem' 显示驻留内存的百分比,即进程使用的 RAM。

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

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

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

答案2

好吧,在我读了一些手册页之后,我得到了以下内容

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

很简单,常驻大小的格式是rss。

答案3

prstat

或者也许是 dtrace 脚本?

答案4

作为 Zenoss 社区经理,我的花费为 $.02...

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

相关内容