简单的工具来graphics记忆的使用?

是否有一个脚本将显示内存使用情况作为一个图表,例如作为一个饼图,每个进程是一个单独的切片?

我不是在寻找像Munin这样的内存使用情况,而是在一个时间点显示每个进程的内存使用情况。

为了使我的请求更加模糊,这是一个无头的服务器(所以没有X应用程序)。 最简单的方法是编写一个PNG文件,或者可能是一个HTML文件(它可以使用Javascript来允许过程的过滤,在graphicstypes之间转换等等)

每进程内存会计是很棘手的,我会在一分钟内进入一些原因。 对于简单的监控,gkrellmd或者nagios脚本可能就足够了。 如果你想要更高的准确性,你需要看起来更难。

smem介绍了比例尺寸的概念:

因为物理内存的大部分通常是在多个应用程序之间共享的,所以称为驻留集大小(RSS)的标准内存使用量度将显着高估内存使用量。 PSS反而衡量每个应用程序的每个共享区域的“公平份额”,以提供一个现实的措施。

示例:您启动GNOME,导致启动大量进程,每个applet和程序一个进程。 他们都链接到libglib。 Linux将libglib加载到一个内存块中,并将其映射到每个需要libglib的进程中。 天真的内存记帐计算每个链接到它的进程的完整libglib大小。

在使用它的过程中,smeg将libglib的代价分开,以更贴近地了解实际情况。 它也有一些显示内存使用情况的选项(来自网站):

  1. 显示基本的过程信息smem
  2. 显示系统视图smem -R 4G -K / path / to / vmlinux -w
  3. 显示总计和百分比smem -t -p
  4. 显示不同的列smem -c“name user pss”
  5. 显示通过映射smem -M libxml过滤的进程
  6. 显示按过程smem -m -P [e] volution过滤的映射
  7. 从捕获tarball中读取数据–source capture.tar.gz
  8. 显示由pid标记的条形图smem –bar pid -c“pss uss”
  9. 显示名为smem –pie name -s rss标记的RSS饼图

但是,您将需要一个非常新的内核(> 2.6.27)。

想不到任何现成的东西

然而,一个PHP脚本的组合执行ps -AH v | awk'{print $ 8,$ 9,$ 10}',并使用pChart可以给你一个网页,可以做你正在寻找的? (以Kb为单位,总量和进程名称的百分比)

看看sarface – 这取决于sar数据,并且可以实时监控您的内存使用情况(以及所有其他sar / sysstat数据)。

那么collectd呢?

自己做。 制作一个简单的shell脚本更新RRD数据库。 然后使用rrdtool绘制graphics。

如果你真的陷入了更低层次的细节,不要忘记collectl。 以下是可以报告的每个进程内存使用情况types的示例:

 RECORD 1 cag-dl585-02(1244758290.002)(Thu Jun 11 18:11:30 2009)

过程总结(计数器是/秒)
 #PID用户S VmSize VmLck VmRSS VmData VmStk VmExe VmLib MajF MinF命令
  9089 root S 66856K 0 2328K 1440K 212K 736K 6812K 0 0 sendmail:
  9097 smmsp S 57600K 0 1772K 1304K 204K 736K 5904K 0 0 sendmail:
  9108根S 6428K 0 360K 180K 84K 88K 1944K 0 0 gpm
  9120根S 74808K 0 1136K 476K 520K 48K 1920K 0 0 crond
  9173 xfs S 20904K 0 1828K 1124K 88K 104K 3084K 0 0 xfs

如果您对特定stream程感兴趣,您可以指定适当的filter(包括切换显示线程)。

如果你对内存感兴趣,也可以显示平板细节,甚至可以输出vmstat格式。 为什么当现有的工具已经做到这一点时,你想要以vmstat格式显示数据? 这很简单 – 通过收集,您可以将统计信息logging到文件中,然后以多种格式重新播放。

尝试一下,你会喜欢它

  1. Grep的过程(S)。
  2. parsing输出并以逗号分隔的格式保存在文本文件中。
  3. 在Excel中打开逗号分隔的文件。
  4. 使用excel的图表工具绘制该数据的图表。

如果您希望以不同的时间间隔创build内存快照,请按照需要的时间间隔设置cron作业并运行脚本。

希望帮助….

这不是你正在寻找的东西,但也许你可以使用这个参考来适应你的需求(查看“每个进程的内存使用情况”)。

嗯, gnuplot常见问题表示它不支持饼图 ,但他们build议Bernhard Reiter的饼图 。

您可以使用#top或#sysstat

我没有进入更多的细节,但collectl有一个生成定界符分隔的输出的选项,所以在gnuplot的情况下,你只需要生成你的数据,其中的空格,你都设置。 它甚至会很好地加载到Excel中。 如果你想要逗号,你可以改变分隔符,如果你真的想做rrd路由(只需要小心,因为图表不需要匹配数据!),你可以改变分隔符为冒号,甚至把时间戳改为UTC。 -标记

kSar,基于sar数据,但是它是基于java的,所以或多或less与平台无关,并允许你ssh到远程主机来获取数据。

http://ksar.atomique.net/

不phpsysinfo给你的能力,以某种方式看到进程信息?