绘制内存使用情况的简单工具?

dbr*_*dbr 14 linux memory performance-monitoring

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

我不是在寻找像Munin这样的东西来绘制随时间变化的内存使用情况,而是在单个时间点显示每个进程的内存使用情况。

为了使我的请求更加模糊,它适用于无头服务器(因此没有 X 应用程序)。最简单的方法是编写一个 PNG 文件,或者可能是一个 HTML 文件(它可以使用 Javascript 来允许过滤进程,在图形类型之间进行更改等等)

jld*_*ger 13

由于多种原因,我将在一分钟内介绍每个进程的内存记帐很棘手。对于简单的监控,gkrellmd 或 nagios 脚本可能就足够了。如果你想要更高的准确性,你需要更努力地看。

smem引入了Proportional Set Size的概念:

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

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

smem 在使用它的进程之间分配 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 smem --source capture.tar.gz 读取数据
  8. 显示由 pid smem --bar pid -c "p​​ss uss" 标记的条形图
  9. 显示以名称 smem --pie name -s rss 标记的 RSS 饼图

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


Mar*_*erg 5

想不出现成的东西

然而,一个 PHP 脚本的组合执行ps -AH v | awk '{ print $8,$9,$10}'并将其与pChart一起使用可以为您提供一个可以满足您要求的网页?(以 Kb 为单位的使用量、占总数的百分比和进程名称)