Linux SMEM工具 - 更准确地显示内存使用情况

时间:2020-03-05 15:28:56  来源:igfitidea点击:

在作为大多数操作系统使用的技术的共享内存环境中,存在多次计数内存的挑战。
这最终提供给用户,系统管理员有关如何使用物理内存的信息不准确。

解决这个问题Smem非常方便。
SMEM报告了唯一的集合大小(USS),该大小(USS)是不与任何其他进程和比例集大小(PSS)共享的内存,这是共享内存的公平共享。

记忆的标准度量称为居民集大小(RSS),其趋势高估在本文后面将看到的内存。

但请注意,SMEM未报告已移动以交换空间的内存。

安装smem.

如果我们有Fedora 19向上,SMEM位于存储库中,因此我们可以使用yum将其安装如下:

$sudo yum install smem

对于Ubuntu用户,我们可以安装SMEM如下:

$sudo apt-get install smem

或者,我们可以从源中编译在Selenic Smem下载页面中。

命令行选项

成功安装SMEM后,我们现在可以使用各种选项运行它。
我们可以通过映射,用户或者sytemwide报告内存使用。
默认情况下,SMEM将显示每个正在运行的进程和所使用的内存。
其中我们开始注意RSS报告相对于USS和PSS使用的内存的方式。

$smem.

SMEM可用于显示根据库使用的内存。
这可以根据系统生成长列表。

$smem -m

有时是有用的,可以看到特定应用程序如何使用存储器,例如Firefox。
-p选项可查看更方便的百分比形式的内存使用情况。

$SMEM -M -P | grep firefox.

SMEM可以显示每个用户的内存用量:

$smem -u -p

我们还可以使用-w选项查看系统宽内存并添加-p以提供百分比值。

$smem -w -p

生成图形输出

SMEM也可以生成图形图表以显示内存使用情况。
为此,我们需要在机器上安装Python。
下一步安装Matplotlib库,用于生成图表。

Fedora用户可以通过运行命令来安装它:

$sudo yum install python-matplotlib

虽然Ubuntu用户可以通过运行来获取它:

$sudo apt-get install python-matplotlib

安装了库后,我们现在可以继续,并以条形图或者饼图的形式获得内存使用的可视化表示。

饼形图

我们现在可以使用SMEM查看饼图的内存使用率(USS,PSS和RSS),如下所示:

$smem --pie name -s uss

这将生成一个饼图,该饼图显示了我们的内存使用情况。
要获取PSS和RSS,只需用相应的缩写替换命令中的命令。

从三个饼图中,我们可以看到RSS报告,我有41.74%的未使用内存,而PSS 53.02%的未使用内存。
我们现在可以看到使用RSS可以将系统管理员发送到恐慌模式,而系统中仍然存在充足的内存。

条状图

Smem的另一个冷却特征是以条形图的形式产生输出。
使用此,我们可以查看USS,PSS和RSS报告的内存使用情况。
这是如下完成的。

$smem --bar pid -c "pss uss rss"

上面的命令将带有进程ID号的输出。
如果要查看此过程'名称,我们可以在没有引号的情况下用"名称"替换"PID"。

与在饼图中一样,RSS总是给出夸张的内存视图,因为我们可以在条形图中看到。