日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

Linux中怎么用smem查看内存占用情况

發(fā)布時間:2023/12/19 综合教程 36 生活家
生活随笔 收集整理的這篇文章主要介紹了 Linux中怎么用smem查看内存占用情况 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

小編給大家分享一下Linux中怎么用smem查看內存占用情況,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

無論是作為系統(tǒng)管理員,還是作為使用桌面版Linux的簡單用戶,你都會注意到,某個進程在耗用你系統(tǒng)的所有內存。

首先要明白Linux是如何管理內存的;我多次接到用戶的反映,說運行了free命令,就是無法適當讀取輸出。簡而言之,如果是Linux內核,不用擔心;內核在耗用內存,緩存文件呢。

放心,Linux內核開發(fā)人員比你我更有能力找到一種優(yōu)秀的算法來緩存文件,并且當某個進程需要時,釋放該內存區(qū)域,所以千萬不要讓我把運行諸如這種命令的某個任務放入計劃任務(cron):

echo3>/proc/sys/vm/drop_caches

當然,之后,你會在系統(tǒng)上有更多的可用閑置內存,但是系統(tǒng)不得不從磁盤重新讀取所有文件,所以就性能而言,這通常是一個糟糕的舉措:

但現(xiàn)在我們不妨看一個小巧的程序,它可以幫助我們找到哪些進程/用戶在大量耗用我們系統(tǒng)的內存。

smem這個工具可以提供Linux系統(tǒng)上內存耗用情況方面的眾多報告。與現(xiàn)有的工具不一樣,smem可以報告實際使用的物理內存(PSS),這是一種更有意義的指標,可以衡量虛擬內存系統(tǒng)中的庫和應用程序所占用的內存數(shù)量。

由于大部分的物理內存通常在多個應用程序之間共享,名為實際使用物理內存(RSS)的這個標準的內存耗用衡量指標會大大高估內存耗用情況。PSS這個參數(shù)而是衡量了每個應用程序在每個共享內存區(qū)中的“公平分配”,給出了一個切合實際的衡量指標。

smem有許多功能特性:

  • 系統(tǒng)概況列表

  • 按進程、映射和用戶列表

  • 按用戶、映射或用戶過濾

  • 來自多個數(shù)據(jù)源的可配置列

  • 可配置的輸出單位和百分比

  • 可配置的標題和總和

  • 從/proc讀取活動數(shù)據(jù)

  • 從目錄鏡像或經(jīng)過壓縮的打包文件讀取數(shù)據(jù)快照

  • 面向嵌入式系統(tǒng)的輕型捕獲工具

  • 內置的圖表生成功能

安裝

如果你使用Debian、Ubuntu或Mint,可以使用下面這個命令,直接從官方軟件庫安裝smem:

$sudoapt-getinstallsmem

Arch Linux用戶可以從Arch用戶軟件庫(AUR,https://www.archlinux.org/packages/community/i686/smem/)安裝程序包。

Red Hat / Fedora / CentOS / SuSE用戶可以使用直接從官方網(wǎng)站下載的預編譯二進制代碼。為了方便起見,你可以拷貝剪貼這些命令,這些命令會將命令smen放入到你的/usr/local/bin文件夾:

cd/tmp/wgethttp://www.selenic.com/smem/download/smem-1.3.tar.gztarxvfsmem-1.3.tar.gzsudocp/tmp/smem-1.3/smem/usr/local/bin/sudochmod+x/usr/local/bin/smem

基本用法

smem可報告物理內存使用情況,并且考慮到共享的內存頁面。非共享內存被報告為進程獨自占用的物理內存(USS)。共享內存在共享該內存的多個進程之間平均分配。非共享內存(USS)以及進程的共享內存比例被報告為實際使用的物理內存(PSS)。USS和PSS只包含物理內存使用情況。它們并不包含已經(jīng)被置換到磁盤上的內存。

基本用法會顯示運行中進程以及所用的內存數(shù)量;想看看這方面的情況,運行不帶任何選項的命令smem,這會得出類似下面這樣的輸出:

#smem
PIDUserCommandSwapUSSPSSRSS
....4223linuxaria/usr/lib/chromium-browser/c09144116962913214280rootpython./smem0115801183913680
2180linuxaria/usr/bin/python/usr/share/0129561469124392
2144linuxariapython/usr/lib/linuxmint/m0202522233735648
2121linuxariaThunar--daemon0133162312244404
2123linuxariaxfdesktop024004249243603213095linuxaria/usr/lib/chromium-browser/c0275363099653328
2577linuxaria/usr/bin/python/usr/lib/ub0341923511241300
2127linuxaria/home/riccio/copy/x86_64/Co040268410815224810720linuxaria/usr/lib/chromium-browser/c038684421076392810561linuxaria/usr/lib/chromium-browser/c043956481377164410579linuxaria/usr/lib/chromium-browser/c0462765029073484
5605linuxariatransmission-gtk/tmp/[kick0486165150865148
8938linuxaria/usr/lib/firefox/plugin-con0489605542871132
2186linuxaria/home/linuxaria/.dropbox-dist/0555245606164820
1722root/usr/bin/X:0-audit0-aut052360731109600810623linuxaria/usr/lib/chromium-browser/c0114224121888149236
4171linuxariachromium-browser--disable-0131044140415165780
7050linuxaria/usr/lib/thunderbird/thunde0253428256803273152
2644linuxaria/usr/lib/firefox/firefox0528420537423558992

所以在該示例(我的桌面)中,耗用較多內存的進程是Firefox,占用內存第二多的是Thunderbird。

-u是一個有用的選項,它顯示了每個用戶所耗用的內存總量:

#smem-uUserCountSwapUSSPSSRSS
daemon10196197368rtkit103003121396nobody104284421600mdm206006951808avahi205688062420syslog10103210431884messagebus10112412072048root40096568123002203372linuxaria830153986416403782222556

可以為該命令添加-p,顯示百分比數(shù)值:

#smem-u-pUserCountSwapUSSPSSRSS
daemon10.00%0.00%0.00%0.00%rtkit10.00%0.00%0.00%0.02%nobody10.00%0.01%0.01%0.02%mdm20.00%0.01%0.01%0.02%avahi20.00%0.01%0.01%0.03%syslog10.00%0.01%0.01%0.02%messagebus10.00%0.01%0.01%0.03%root400.00%1.18%1.47%2.41%linuxaria830.00%19.29%20.48%27.58%

或者,如果你更想看到整個系統(tǒng)的內存使用情況,則可以使用-w選項:

#smem-w-pAreaUsedCacheNoncache
firmware/hardware0.00%0.00%0.00%kernelimage0.00%0.00%0.00%kerneldynamicmemory64.55%62.42%2.13%userspacememory22.12%3.00%19.12%freememory13.33%13.33%0.00%

說到-w,我建議另外使用選項-R REALMEM,這個值是指物理內存數(shù)量。這讓smem可以在整個系統(tǒng)(-w)的輸出中發(fā)現(xiàn)固件/硬件所耗用的內存數(shù)量。如果提供該選項,它還可以用作百分比所用到的總內存大小。

#smem-R8G-w-pAreaUsedCacheNoncache
firmware/hardware2.83%0.00%2.83%kernelimage0.00%0.00%0.00%kerneldynamicmemory63.02%60.95%2.07%userspacememory21.60%2.91%18.68%freememory12.56%12.56%0.00%

借助smen,以圖形顯示linux內存

如果借助smem(又擁有matplotlib庫),只要再借助幾個選項,就可以生成條形圖和餅形圖。

顯示帶“pss”和“uss”這兩列的條形圖:

#smem--barpid-c"pssuss"

創(chuàng)建餅形圖,顯示在運行系統(tǒng)上以“k”開頭的進程:

#smem-P'^k'--pie=name

總結

以上是生活随笔為你收集整理的Linux中怎么用smem查看内存占用情况的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。