国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Linux > 正文

在Linux中可視化顯示內存占用情況的方法

2020-07-10 11:24:39
字體:
來源:轉載
供稿:網友

物理內存不足對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

    2015615163527575.jpg (640×281)

    如有你想得到整個系統中所有用戶的內存使用情況,就需要使用root權限來運行smem。

   

復制代碼
代碼如下:
$ sudo smem
 
   2015615163610148.jpg (640×325)

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

   

復制代碼
代碼如下:
$ sudo smem -u

  2015615163631697.jpg (599×330)  

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

  •     -M <正則表達式>
        -P <正則表達式>
        -U <正則表達式>

想了解smem更多的使用方式,可以查詢用戶手冊(man page)。
使用smem圖形化顯示內存使用情況

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

下面是一些圖形化顯示的實例。

下面的命令行會基于PSS/RSS值,生成直方圖,以用戶alice為例。

   

復制代碼
代碼如下:
$ sudo smem --bar name -c "pss uss" -U alice

2015615163730178.jpg (640×492)

這個例子會生成一張餅圖,圖中顯示了系統中各進程的PSS內存使用量:


復制代碼
代碼如下:
$ sudo smem --pie name -c "pss"

2015615163755895.jpg (640×452)

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 容城县| 和硕县| 芜湖市| 正蓝旗| 开平市| 景东| 楚雄市| 安徽省| 平塘县| 西昌市| 司法| 龙泉市| 云和县| 淅川县| 绵阳市| 鹿泉市| 澎湖县| 额尔古纳市| 贵南县| 临安市| 南雄市| 阿鲁科尔沁旗| 武汉市| 平陆县| 壤塘县| 扶风县| 长宁区| 南江县| 望江县| 莒南县| 赫章县| 崇礼县| 新巴尔虎左旗| 和林格尔县| 遵化市| 宁强县| 平定县| 仲巴县| 额敏县| 无棣县| 台东县|