Linux中國

用 smem 命令獲取內存使用統計信息

在我的編程工作中,我經常需要了解網頁應用的內存使用情況。在深入研究細節和瀏覽器剖析工具之前,一個粗略的估計通常就足夠了。

為了了解 Linux 或 macOS 上的內存使用情況,人們通常使用 tophtop。我很想看到一個單一的數字:一個進程佔用了多少內存。但這些工具所顯示的統計數據可能很難理解。對於網頁瀏覽器來說,它甚至更加複雜,因為它們經常運行許多獨立的進程。它們在 top 輸出中顯示為一個長長的列表,每一個都有自己的單獨指標。

![Memory usage using htop](/data/attachment/album/202110/25/101853izcyy0bttz1ltbx2.png "Memory usage using htop")

smem 命令

幸運的是有 smem,另一個用於查看內存使用統計的命令行工具。用你選擇的包管理器安裝它,例如:

sudo apt install smem

要獲得 Firefox 的總內存使用量,請執行:

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

這些開關做了什麼?

  • -c 開關指定要顯示的列。我只對 pss 列感興趣,它顯示一個進程分配的內存。
  • -P 開關過濾進程,只包括那些名字里有 firefox 的進程。
  • -k 開關顯示以 MB/GB 為單位的內存使用情況,而不是單純的位元組數。
  • -t 開關顯示總數。
  • tail -n 1 過濾器只輸出最後一行,也就是總數的地方。

輸出是非常簡單的:

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

開門見山!而且,經過又一天忙碌的工作,打開了 50 多個選項卡,Firefox 仍然只使用 5 GB。看看吧,Google Chrome。

用一個腳本更容易

為了方便起見,我創建一個名為 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

顯示類似這樣的內容:

![Pie chart output from smem](/data/attachment/album/202110/25/101854lvgfcmc3ikkeb6mh.png "Pie chart output from smem")

關於更多的細節,我建議查看 smem 手冊頁

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

希望你喜歡!

本文最初發表在作者的博客上,並經許可轉載。

via: https://opensource.com/article/21/10/memory-stats-linux-smem

作者:Tomasz Waraksa 選題:lujun9972 譯者:geekpi 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國