在Linux中可視化顯示記憶體佔用情況的方法

來源:互聯網
上載者:User

   實體記憶體不足對Linux案頭系統和伺服器系統的效能影響都很大。當你的電腦變慢時,要做的第一件事就是釋放記憶體。尤其是在多使用者環境以及執行關鍵任務的伺服器環境下,記憶體消耗會變得更加關鍵,因為多個使用者和應用線程會同時競爭更多的記憶體空間。

  如果要監測系統內各種資源的使用方式(比如說CPU或記憶體),圖形化顯示是一種高效的方法,通過圖形介面可以快速分析各使用者和進程的資源消耗情況。本教程將給大家介紹在linux下圖形化分析記憶體使用量情況的方法,使用到命令列工具是smem.

  實體記憶體使用方式: RSS 、 PSS 和 USS

  由於Linux使用到了虛擬記憶體(virtual memory),因此要準確的計算一個進程實際使用的實體記憶體就不是那麼簡單。 只知道進程的虛擬記憶體大小也並沒有太大的用處,因為還是無法擷取到實際分配的實體記憶體大小。

  RSS(Resident set size),使用top命令可以查詢到,是最常用的記憶體指標,表示進程佔用的實體記憶體大小。但是,將各進程的RSS值相加,通常會超出整個系統的記憶體消耗,這是因為RSS中包含了各進程間共用的記憶體。

  PSS(Proportional set size)會更準確一些,它將共用記憶體的大小進行平均後,再分攤到各進程上去。

  USS(Unique set size )是PSS中自己的部分,它只計算了進程獨自佔用的記憶體大小,不包含任何共用的部分。

  安裝Smem

  smem是一個能夠產生多種記憶體耗用報告的命令列工具,它從/proc檔案系統中提取各進程的PSS/USS資訊,並進行匯總輸出。它還內建了圖表的產生能力,所以能夠方便地分析整個系統的記憶體使用量情況。

  在Debian, Ubuntu 或 Linux Mint 上安裝smem

  代碼如下:

  $ sudo apt-get install smem

  在Fedora 或 CentOS/RHEL上安裝Smem

  在CentOS/RHEL上,你首先得啟用EPEL倉庫。

  代碼如下:

  $ sudo yum install smem python-matplotlib

  使用smem檢查記憶體使用量情況

  你可以在非特權模式下使用smem,它能夠顯示目前使用者啟動並執行所有進程的記憶體使用量情況,並按照PSS的大小進行排序。

  代碼如下:

  $ smem

  如有你想得到整個系統中所有使用者的記憶體使用量情況,就需要使用root許可權來運行smem。

  代碼如下:

  $ sudo smem

  也可以按使用者維度來輸出報告:

  代碼如下:

  $ sudo smem -u

  smem提供了以下選項來對輸出結果進行篩選,支援按映射方式(mapping)、進程和使用者三個維度篩選:

  -M <Regex>

  -P <Regex>

  -U <Regex>

  想瞭解smem更多的使用方式,可以查詢使用者手冊(man page)。

  使用smem圖形化顯示記憶體使用量情況

  圖形化的報告使用起來會更加方便快捷。smem支援兩種格式的圖形顯示方式:長條圖和餅圖。

  下面是一些圖形化顯示的執行個體。

  下面的命令列會基於PSS/RSS值,產生長條圖,以使用者alice為例。

  代碼如下:

  $ sudo smem --bar name -c "pss uss" -U alice

  這個例子會產生一張餅圖,圖中顯示了系統中各進程的PSS記憶體使用量量:

  代碼如下:

  $ sudo smem --pie name -c "pss"

  概括來說,smem是一個方便易用的記憶體分析工具。利用smem的格式化輸出,你可以對記憶體使用量報告進行自動化分析,並執行一些自動化的處理措施。如果你還知道其他的一些優秀的記憶體偵查工具,請在留言區告訴我。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.