使用这款 Linux 命令行工具获取内存使用统计信息

smem 命令允许您快速查看您的 Web 应用程序的内存使用情况。
31 位读者喜欢这篇文章。
Programming at a browser, orange hands

opensource.com

在我的编程工作中,我经常需要了解 Web 应用程序使用的内存。在深入细节和浏览器分析工具之前,粗略的估计通常就足够了。

要在 Linux 或 macOS 上查询内存使用情况,人们通常使用 tophtop。我希望看到一个单独的数字:一个进程占用了多少 RAM。但是这些实用程序显示的统计数据可能难以理解。对于 Web 浏览器,情况甚至更复杂,因为它们通常运行许多单独的进程。它们都在 top 输出中显示为一个长列表,每个列表都有自己的指标。

输入 smem 命令

幸运的是,还有 smem,另一个用于查看内存使用统计信息的命令行实用程序。使用您选择的软件包管理器安装它,例如

sudo apt install smem

要获取 Firefox 的总内存使用量,请执行以下操作

smem -c pss -P firefox -k -t | tail -n 1

这里发生了什么?

  • -c 开关指定要显示的列。我只对 pss 列感兴趣,它显示进程分配的内存。
  • -P 开关过滤进程,仅包含名称中带有 firefox 的进程
  • -k 开关告诉以兆/吉字节而不是纯字节显示内存使用量
  • -t 开关显示总计
  • tail -n 1 过滤器仅输出最后一行,即总计所在的位置

输出非常简单

$ smem -t -k -c pss -P firefox | tail -n 1
4.9G

直奔主题!而且,在又一个忙碌的工作日之后,打开了五十多个标签页,Firefox 仍然只使用了 5 GB。谷歌浏览器,看看这个 ;-)

使用脚本甚至更轻松

为了方便起见,创建一个名为 memory-use 的小脚本,它将进程名称作为参数。我将所有脚本都保存在 ~/bin 中,所以

echo 'smem -c pss -P "$1" -k -t | tail -n 1' > ~/bin/memory-use && chmod +x ~/bin/memory-use

现在我可以像这样轻松地测量任何应用程序的内存使用情况

memory-use firefox
memory-use chrome
memory-use slack

还有更多!

该实用程序的功能远不止显示总内存使用量。它甚至可以生成图形输出。

例如

smem --pie name -c pss

显示类似这样的内容

有关更多详细信息,我建议查看 smem 手册页

您可以在 https://linoxide.com/memory-usage-reporting-smem/ 找到另一个很棒的教程。

尽情享用!


本文最初出现在作者的博客上,并经许可重新发布。

接下来阅读什么
标签

1 条评论

非常好!

知识共享许可协议本作品根据知识共享署名-相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.