我不是在寻找像Munin这样的东西来描绘内存使用情况,而是在单个时间点显示每个进程的内存使用情况.
为了使我的请求更加模糊,它适用于无头服务器(因此没有X应用程序).最简单的方法是编写PNG文件,或者可能是HTML文件(可以使用Javascript来过滤流程,在图形类型之间切换等等)
解决方法
smem引入了比例集大小的概念:
Because large portions of physical memory are typically shared among multiple applications,the standard measure of memory usage known as resident set size (RSS) will significantly overestimate memory usage. PSS instead measures each application’s “fair share” of each shared area to give a realistic measure.
示例:启动GNOME,导致启动许多进程,每个进程对应一个applet和程序.它们都链接到libglib. Linux将libglib加载到一个内存块中,并将其映射到每个需要libglib的进程中.朴素内存记帐会根据链接到它的每个进程计算完整的libglib大小.
smem在使用它的过程中划分了libglib的成本,以更贴近现实.它还有许多显示内存使用的选项(来自网站):
>显示基本过程信息
>显示系统视图smem -R 4G -K / path / to / vmlinux -w
>显示总数和百分比smem -t -p
>显示不同的列smem -c“name user pss”
>显示通过映射smem -M libxml过滤的进程
>显示按进程smem -m -P [e] volution过滤的映射
>从捕获tarball smem中读取数据–source capture.tar.gz
>显示标有pid smem的条形图–bar pid -c“pss uss”
>显示名称为smem –pie name -s RSS标记的RSS饼图
但是,您需要一个非常新的内核(> 2.6.27).