是否有脚本将内存使用情况显示为图形,例如饼图,每个进程都是一个单独的切片?
我不是在寻找像Munin这样的东西来绘制一段时间内的内存使用情况,而是在单个时间点显示每个进程的内存使用情况。
为了使我的请求更加模糊,它适用于无头服务器(因此没有 X 应用程序)。最简单的方法是编写一个 PNG 文件,或者可能是一个 HTML 文件(可以使用 Javascript 来允许过滤进程、在图形类型之间进行更改等)
是否有脚本将内存使用情况显示为图形,例如饼图,每个进程都是一个单独的切片?
我不是在寻找像Munin这样的东西来绘制一段时间内的内存使用情况,而是在单个时间点显示每个进程的内存使用情况。
为了使我的请求更加模糊,它适用于无头服务器(因此没有 X 应用程序)。最简单的方法是编写一个 PNG 文件,或者可能是一个 HTML 文件(可以使用 Javascript 来允许过滤进程、在图形类型之间进行更改等)
每个进程的内存记帐很棘手,原因有很多,我将在一分钟内讨论。对于简单的监控,gkrellmd 或 nagios 脚本可能就足够了。如果您想要更高的准确性,则需要更加努力。
smem引入了Proportional Set Size的概念:
示例:您启动 GNOME,导致启动多个进程,每个小程序和程序一个。它们都链接到 libglib。Linux 将 libglib 加载到一个内存块中,并将其映射到需要 libglib 的每个进程。朴素的内存记帐针对链接到它的每个进程计算完整的 libglib 大小。
smem 将 libglib 的成本分配给使用它的进程,以更接近现实。它还有许多选项来显示内存使用情况(来自网站):
但是,您将需要一个最新的内核 (> 2.6.27)。
想不出现成的东西
然而,一个 PHP 脚本的组合 exec'ing ps -AH v | awk '{ print $8,$9,$10}'并将其与pChart一起使用可以为您提供一个可以满足您需求的网页?(以 Kb 为单位的使用量,占总数的百分比和进程名称)
看看sarface - 它取决于 sar 数据,您可以实时监控内存使用情况(以及所有其他 sar/sysstat 数据)。
那么collectd呢?
自己做。制作一个简单的 shell 脚本来更新 RRD 数据库。然后使用 rrdtool 绘制图形。
如果您真的很喜欢较低级别的细节,请不要忘记收集。以下是它可以报告的每个进程内存利用率类型的示例:
如果您对特定进程感兴趣,您可以指定适当的过滤器(包括显示线程的开关)。
如果你对内存感兴趣,它还可以显示平板细节,甚至还有 vmstat 格式的输出。当现有工具已经这样做了,为什么还要以 vmstat 格式显示数据?这很容易 - 使用 collectly,您可以将统计信息记录到文件中,并在以后以多种格式播放。
试试看,你会喜欢的
如果您想以不同的时间间隔进行内存快照...将 cron 作业设置为所需的时间间隔并运行脚本。
希望有帮助....
这并不完全是您正在寻找的内容,但也许您可以使用此参考来调整它以满足您的需求(查找“每进程内存使用情况”)。
嗯,gnuplot常见问题解答说它不支持 pie chart,但他们建议 Bernhard Reiter 的piechart。
您可以使用 #top 或 #sysstat