linux查看物理內(nèi)存? .那么,linux查看物理內(nèi)存?一起來了解一下吧。
可以使用“free”命令查看當(dāng)前內(nèi)存的使用情況,
其中各項(xiàng)的含義如下,total:總計(jì)物理內(nèi)存的大小;used:已使用的內(nèi)存大小;free:可用的內(nèi)存大小;shared:多個(gè)進(jìn)程共享的內(nèi)存總額;buffers/cached:磁盤緩存的大小。
第二行(mem)的used/free與第三行(-/+ buffers/cache)used/free的區(qū)別在于是從不同的角度來看內(nèi)存的占用,“mem”是從操作系統(tǒng)的角度來看,對(duì)于os,buffers/cached都是屬于被使用,總共使用的內(nèi)存包含內(nèi)核(os)使用+application(x,oracle,etc)使用+buffers+cached。“-/+ buffers/cache”所指的是從應(yīng)用程序角度來看,對(duì)于應(yīng)用程序來說,buffers/cached 是可用的內(nèi)存,因?yàn)閎uffer/cached是為了提高文件讀取的性能,當(dāng)應(yīng)用程序需在用到內(nèi)存的時(shí)候,buffer/cached會(huì)很快地被回收。
linux將物理內(nèi)存按固定大小的頁面(一般為4k)劃分內(nèi)存,在內(nèi)核初始化時(shí),會(huì)建立一個(gè)全局struct page結(jié)構(gòu)數(shù)組mem_map[ ]。如系統(tǒng)中有76g物理內(nèi)存,則物理內(nèi)存頁面數(shù)為76*1024*1024k/4k= 19922944個(gè)頁面,mem_map[ ]數(shù)組大小19922944,即為數(shù)組中每個(gè)元素和物理內(nèi)存頁面一一對(duì)應(yīng),整個(gè)數(shù)組就代表著系統(tǒng)中的全部物理頁面。 在服務(wù)器中,存在numa架構(gòu)(如nehalem、romly等),linux將numa中內(nèi)存訪問速度一致(如按照內(nèi)存通道劃分)的部分稱為一個(gè)節(jié)點(diǎn)(node),用struct pglist_data數(shù)據(jù)結(jié)構(gòu)表示,通常使用時(shí)用它的typedef定義pg_data_t。系統(tǒng)中的每個(gè)結(jié)點(diǎn)都通過pgdat_list鏈表pg_data_t->node_next連接起來,該鏈接以null為結(jié)束標(biāo)志。每個(gè)結(jié)點(diǎn)又進(jìn)一步分為許多塊,稱為區(qū)域(zones)。區(qū)域表示內(nèi)存中的一塊范圍。區(qū)域用struct zone_struct數(shù)據(jù)結(jié)構(gòu)表示,它的typedef定義為zone_t。更多詳細(xì)的解答可以查看《linux就該這么學(xué)》。
可以直接使用top命令后,查看%MEM的內(nèi)容。可以選擇按進(jìn)程查看或者按用戶查看,如想查看oracle用戶的進(jìn)程內(nèi)存使用情況的話可以使用如下的命令:
(1)top
top命令是Linux下常用的性能分析工具,能夠?qū)崟r(shí)顯示系統(tǒng)中各個(gè)進(jìn)程的資源占用狀況,類似于Windows的任務(wù)管理器
可以直接使用top命令后,查看%MEM的內(nèi)容。可以選擇按進(jìn)程查看或者按用戶查看,如想查看oracle用戶的進(jìn)程內(nèi)存使用情況的話可以使用如下的命令:
$ top -u oracle
內(nèi)容解釋:
PID:進(jìn)程的ID
USER:進(jìn)程所有者
PR:進(jìn)程的優(yōu)先級(jí)別,越小越優(yōu)先被執(zhí)行
NInice:值
VIRT:進(jìn)程占用的虛擬內(nèi)存
RES:進(jìn)程占用的物理內(nèi)存
SHR:進(jìn)程使用的共享內(nèi)存
S:進(jìn)程的狀態(tài)。S表示休眠,R表示正在運(yùn)行,Z表示僵死狀態(tài),N表示該進(jìn)程優(yōu)先值為負(fù)數(shù)
%CPU:進(jìn)程占用CPU的使用率
%MEM:進(jìn)程使用的物理內(nèi)存和總內(nèi)存的百分比
TIME+:該進(jìn)程啟動(dòng)后占用的總的CPU時(shí)間,即占用CPU使用時(shí)間的累加值。
COMMAND:進(jìn)程啟動(dòng)命令名稱
常用的命令:
P:按%CPU使用率排行
T:按MITE+排行
M:按%MEM排行
查看內(nèi)存使用情況,可以使用命令?free?-m
其結(jié)果大致如下:
total???????used?????????free?????shared????buffers?????cached
Mem:?????????32108??????30681???????1426??????????0????????123??????21165
-/+?buffers/cache:???????9392??????22715
Swap:????????34287???????1262??????33025
在第一部分Mem?行中有如下參數(shù):
*?total:?內(nèi)存總數(shù),即32108?MB
*?used:?已經(jīng)使用的內(nèi)存數(shù),即?30681?MB
*?free:?空閑的內(nèi)存數(shù):即?1426MB
*?shared:當(dāng)前已廢棄不用,總是?0
*?buffers?Buffer:?緩存內(nèi)存數(shù),即?123?MB
*?cached?Page:?緩存內(nèi)存數(shù),即?421MB
其中,內(nèi)存總數(shù)與已經(jīng)使用內(nèi)存數(shù)和空閑內(nèi)存數(shù)的關(guān)系是:
total?(32108)?=?used?(30681)?+?free?(1426)
在第二部分內(nèi)容(-/+?buffers/cache)中個(gè)參數(shù)如下所示:
(-buffers/cache):?真正使用的內(nèi)存數(shù),即9392M,他指的是第一部分的?used?-?buffers?-?cached
(+buffers/cache):?可用的內(nèi)存數(shù),即22715M,他指的是第一部分的?free?+?buffers?+?cached
其含義可以理解為:-buffers/cached?反映的是被程序?qū)崒?shí)在在用掉的內(nèi)存,而?+buffers/cached反映的是可以被使用(或者說挪用)的內(nèi)存總數(shù)。
top能顯示系統(tǒng)內(nèi)存。我們常用的Linux下查看內(nèi)容的專用工具是free命令。
下面是對(duì)內(nèi)存查看free命令輸出內(nèi)容的解釋:
total:總計(jì)物理內(nèi)存的大小。
used:已使用多大。
free:可用有多少。
Shared:多個(gè)進(jìn)程共享的內(nèi)存總額。
Buffers/cached:磁盤緩存的大小。
以上就是linux查看物理內(nèi)存的全部?jī)?nèi)容。