中文字幕精品亚洲无线码二区,国产黄a三级三级三级看三级,亚洲七七久久桃花影院,丰满少妇被猛烈进入,国产小视频在线观看网站

每天一個linux命(ming)令(46):vmstat命(ming)令

vmstat是Virtual Meomory Statistics(虛擬內存統計)的(de)(de)縮寫,可對操(cao)作系統的(de)(de)虛擬內存、進(jin)(jin)程(cheng)、CPU活(huo)動進(jin)(jin)行監控。他(ta)是對系統的(de)(de)整體(ti)情況(kuang)進(jin)(jin)行統計,不足之處是無法對某個(ge)進(jin)(jin)程(cheng)進(jin)(jin)行深入(ru)分析。vmstat 工具提供(gong)了(le)一種低開(kai)銷(xiao)的(de)(de)系統性能觀察方式(shi)因(yin)為 vmstat 本(ben)身(shen)就是低開銷(xiao)工具在非常高負荷(he)的服務器上你(ni)需要查看并監控(kong)系統的健康情況,在控(kong)制窗口還是能夠使用vmstat 輸(shu)出結果在學習(xi)vmstat命令前,我(wo)們先了解一下Linux系統中關于物理內存和虛擬(ni)內存(cun)相關信息(xi)

物理內存和虛擬內存區別:

我們(men)知道,直(zhi)接從物(wu)(wu)理內(nei)(nei)存(cun)讀寫(xie)數(shu)據(ju)要比從硬盤讀寫(xie)數(shu)據(ju)要快的多,因此,我們(men)希望(wang)所有數(shu)據(ju)的讀取和寫(xie)入(ru)都在(zai)內(nei)(nei)存(cun)完(wan)成,而內(nei)(nei)存(cun)是有限的,這(zhe)樣就引(yin)出(chu)了物(wu)(wu)理內(nei)(nei)存(cun)與虛擬內(nei)(nei)存(cun)的概念。

物理(li)內(nei)存(cun)就是系統硬件提(ti)(ti)供的(de)內(nei)存(cun)大小,是真正的(de)內(nei)存(cun),相對于(yu)物理(li)內(nei)存(cun),在linux下還有一(yi)個虛擬(ni)(ni)(ni)內(nei)存(cun)的(de)概念,虛擬(ni)(ni)(ni)內(nei)存(cun)就是為(wei)了滿足物理(li)內(nei)存(cun)的(de)不(bu)足而提(ti)(ti)出(chu)的(de)策(ce)略,它(ta)是利(li)用(yong)磁盤空(kong)間虛擬(ni)(ni)(ni)出(chu)的(de)一(yi)塊(kuai)邏輯內(nei)存(cun),用(yong)作虛擬(ni)(ni)(ni)內(nei)存(cun)的(de)磁盤空(kong)間被稱為(wei)交換空(kong)間(Swap Space)。

作為物(wu)理(li)內(nei)存(cun)的擴展,linux會在物(wu)理(li)內(nei)存(cun)不足時,使用(yong)交(jiao)(jiao)換分區的虛擬內(nei)存(cun),更詳細的說,就是內(nei)核會將暫(zan)時不用(yong)的內(nei)存(cun)塊信(xin)息寫到交(jiao)(jiao)換空間(jian),這樣(yang)以來,物(wu)理(li)內(nei)存(cun)得到了釋放,這塊內(nei)存(cun)就可以用(yong)于其(qi)它(ta)目(mu)的,當需要用(yong)到原始的內(nei)容時,這些信(xin)息會被重(zhong)新從交(jiao)(jiao)換空間(jian)讀(du)入物(wu)理(li)內(nei)存(cun)。

linux的(de)內(nei)(nei)(nei)存(cun)管理(li)(li)采取(qu)的(de)是分(fen)頁存(cun)取(qu)機制,為(wei)了保(bao)證(zheng)物(wu)理(li)(li)內(nei)(nei)(nei)存(cun)能得到(dao)充分(fen)的(de)利用,內(nei)(nei)(nei)核(he)會在適當的(de)時候將物(wu)理(li)(li)內(nei)(nei)(nei)存(cun)中不經(jing)常(chang)(chang)使用的(de)數據塊自動交(jiao)換到(dao)虛擬內(nei)(nei)(nei)存(cun)中,而將經(jing)常(chang)(chang)使用的(de)信息保(bao)留到(dao)物(wu)理(li)(li)內(nei)(nei)(nei)存(cun)。

要(yao)深(shen)入了解linux內存(cun)運行機(ji)制(zhi),需要(yao)知道下面提(ti)到的幾個方面:

首先,Linux系(xi)統(tong)會(hui)不時(shi)(shi)的進行頁面交換操作,以(yi)保持盡可(ke)能多的空閑(xian)物理內存,即(ji)使并沒有什么(me)事(shi)情需要(yao)內存,Linux也會(hui)交換出暫時(shi)(shi)不用的內存頁面。這(zhe)可(ke)以(yi)避免等待交換所(suo)需的時(shi)(shi)間。

其次,linux進(jin)行頁面(mian)交(jiao)換(huan)是(shi)(shi)有(you)條件(jian)(jian)的(de)(de),不(bu)是(shi)(shi)所(suo)有(you)頁面(mian)在不(bu)用(yong)(yong)時(shi)(shi)(shi)都交(jiao)換(huan)到(dao)虛(xu)擬內(nei)(nei)(nei)(nei)存(cun)(cun)(cun)(cun),linux內(nei)(nei)(nei)(nei)核根據”最近(jin)最經常使用(yong)(yong)“算法,僅僅將一些不(bu)經常使用(yong)(yong)的(de)(de)頁面(mian)文(wen)件(jian)(jian)交(jiao)換(huan)到(dao)虛(xu)擬內(nei)(nei)(nei)(nei)存(cun)(cun)(cun)(cun),有(you)時(shi)(shi)(shi)我們會看到(dao)這(zhe)么(me)一個現象:linux物(wu)理內(nei)(nei)(nei)(nei)存(cun)(cun)(cun)(cun)還(huan)有(you)很(hen)多,但是(shi)(shi)交(jiao)換(huan)空間(jian)也使用(yong)(yong)了(le)很(hen)多。其實,這(zhe)并(bing)不(bu)奇怪,例如,一個占(zhan)用(yong)(yong)很(hen)大(da)內(nei)(nei)(nei)(nei)存(cun)(cun)(cun)(cun)的(de)(de)進(jin)程(cheng)運(yun)行時(shi)(shi)(shi),需要(yao)耗費很(hen)多內(nei)(nei)(nei)(nei)存(cun)(cun)(cun)(cun)資源,此(ci)時(shi)(shi)(shi)就(jiu)會有(you)一些不(bu)常用(yong)(yong)頁面(mian)文(wen)件(jian)(jian)被(bei)交(jiao)換(huan)到(dao)虛(xu)擬內(nei)(nei)(nei)(nei)存(cun)(cun)(cun)(cun)中,但后(hou)來這(zhe)個占(zhan)用(yong)(yong)很(hen)多內(nei)(nei)(nei)(nei)存(cun)(cun)(cun)(cun)資源的(de)(de)進(jin)程(cheng)結束并(bing)釋放了(le)很(hen)多內(nei)(nei)(nei)(nei)存(cun)(cun)(cun)(cun)時(shi)(shi)(shi),剛才被(bei)交(jiao)換(huan)出去的(de)(de)頁面(mian)文(wen)件(jian)(jian)并(bing)不(bu)會自動的(de)(de)交(jiao)換(huan)進(jin)物(wu)理內(nei)(nei)(nei)(nei)存(cun)(cun)(cun)(cun),除非有(you)這(zhe)個必要(yao),那么(me)此(ci)刻系(xi)統物(wu)理內(nei)(nei)(nei)(nei)存(cun)(cun)(cun)(cun)就(jiu)會空閑很(hen)多,同時(shi)(shi)(shi)交(jiao)換(huan)空間(jian)也在被(bei)使用(yong)(yong),就(jiu)出現了(le)剛才所(suo)說的(de)(de)現象了(le)。關于這(zhe)點,不(bu)用(yong)(yong)擔(dan)心(xin)什(shen)么(me),只要(yao)知道是(shi)(shi)怎么(me)一回事(shi)就(jiu)可以了(le)。

最后,交換(huan)空間(jian)的頁面(mian)在使(shi)用時會首(shou)先(xian)被(bei)交換(huan)到物理(li)內存(cun)(cun),如(ru)果(guo)此時沒有足夠的物理(li)內存(cun)(cun)來容納(na)這些(xie)頁面(mian),它們又會被(bei)馬(ma)上(shang)交換(huan)出(chu)去,如(ru)此以來,虛擬內存(cun)(cun)中可能沒有足夠空間(jian)來存(cun)(cun)儲(chu)這些(xie)交換(huan)頁面(mian),最終會導(dao)致linux出(chu)現假死機、服務異常等問題,linux雖然可以在一段時間(jian)內自(zi)行恢(hui)復,但(dan)是(shi)恢(hui)復后的系(xi)統已(yi)經基本不(bu)可用了。

因此,合理規劃和設(she)計linux內存的(de)使用(yong),是非常重要的(de)

虛擬內存原理

在系統中運行的(de)每個進(jin)程(cheng)(cheng)都(dou)需要使(shi)用到(dao)內(nei)存(cun)(cun),但不是每個進(jin)程(cheng)(cheng)都(dou)需要每時每刻使(shi)用系統分配(pei)的(de)內(nei)存(cun)(cun)空間。當系統運行所需內(nei)存(cun)(cun)超過實際的(de)物理內(nei)存(cun)(cun),內(nei)核(he)會釋放某些進(jin)程(cheng)(cheng)所占用但未使(shi)用的(de)部(bu)分或所有(you)物理內(nei)存(cun)(cun),將這部(bu)分資料(liao)存(cun)(cun)儲在磁(ci)盤上直到(dao)進(jin)程(cheng)(cheng)下一次調用,并將釋放出的(de)內(nei)存(cun)(cun)提供給有(you)需要的(de)進(jin)程(cheng)(cheng)使(shi)用。

在Linux內(nei)存管理中(zhong),主要是(shi)通過“調(diao)頁Paging”和“交(jiao)(jiao)換(huan)(huan)Swapping”來完成(cheng)上述(shu)的(de)(de)內(nei)存調(diao)度。調(diao)頁算法(fa)是(shi)將內(nei)存中(zhong)最近不(bu)常使(shi)用的(de)(de)頁面(mian)換(huan)(huan)到磁(ci)盤上,把活動頁面(mian)保(bao)留在內(nei)存中(zhong)供進(jin)程使(shi)用。交(jiao)(jiao)換(huan)(huan)技術是(shi)將整個(ge)進(jin)程,而不(bu)是(shi)部分頁面(mian),全部交(jiao)(jiao)換(huan)(huan)到磁(ci)盤上。

分(fen)頁(Page)寫入磁(ci)盤的(de)過程被稱(cheng)作(zuo)Page-Out,分(fen)頁(Page)從磁(ci)盤重新回到內存的(de)過程被稱(cheng)作(zuo)Page-In。當內核需要一(yi)個分(fen)頁時(shi)(shi),但發現(xian)此(ci)分(fen)頁不在物(wu)理內存中(因為已經被Page-Out了(le)),此(ci)時(shi)(shi)就發生(sheng)了(le)分(fen)頁錯誤(Page Fault)。

當(dang)系統(tong)內(nei)(nei)核(he)發現可運(yun)行(xing)(xing)內(nei)(nei)存變少時(shi)(shi),就會(hui)通過(guo)Page-Out來釋放一部分物理內(nei)(nei)存。經管(guan)Page-Out不(bu)(bu)是經常(chang)發生(sheng),但是如果Page-out頻繁不(bu)(bu)斷的(de)發生(sheng),直到當(dang)內(nei)(nei)核(he)管(guan)理分頁的(de)時(shi)(shi)間超(chao)過(guo)運(yun)行(xing)(xing)程式的(de)時(shi)(shi)間時(shi)(shi),系統(tong)效能會(hui)急(ji)劇下降。這時(shi)(shi)的(de)系統(tong)已經運(yun)行(xing)(xing)非(fei)常(chang)慢或進入暫(zan)停狀(zhuang)態,這種狀(zhuang)態亦被(bei)稱(cheng)作thrashing(顛簸)。

 

1.命令格式(shi):

vmstat [-a] [-n] [-S unit] [delay [ count]]

vmstat [-s] [-n] [-S unit]

vmstat [-m] [-n] [delay [ count]]

vmstat [-d] [-n] [delay [ count]]

vmstat [-p disk partition] [-n] [delay [ count]]

vmstat [-f]

vmstat [-V]

2.命令(ling)功(gong)能:

用來顯示(shi)虛擬內存的(de)信息

3.命令(ling)參數(shu):

-a:顯示活躍和(he)非活躍內存

-f:顯示從系(xi)統啟動至今的(de)fork數量(liang) 。

-m:顯示slabinfo

-n:只在(zai)開(kai)始時顯示一次各字(zi)段名稱。

-s:顯示內存相關統(tong)計信息及(ji)多種系統(tong)活(huo)動數量。

delay:刷新時間(jian)間(jian)隔。如果不指定,只顯示(shi)一條結果。

count:刷(shua)新次數。如(ru)果不指定(ding)刷(shua)新次數,但指定(ding)了刷(shua)新時(shi)(shi)間間隔,這時(shi)(shi)刷(shua)新次數為無窮(qiong)。

-d:顯示磁盤相(xiang)關統計信息。

-p:顯示指定磁盤分區統計信息

-S:使(shi)用指定單(dan)位顯(xian)示。參(can)數有 k 、K 、m 、M ,分別代表1000、1024、1000000、1048576字節(jie)(byte)。默(mo)認單(dan)位為K(1024 bytes)

-V:顯示vmstat版本信息。

4.使用實例:

實例1:顯(xian)示虛擬(ni)內存使用情況(kuang)

命(ming)令(ling):

vmstat

輸(shu)出:

[root@localhost ~]# vmstat 5 6
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0      0 3029876 199616 690980    0    0     0     2    3    2  0  0 100  0  0
 0  0      0 3029752 199616 690980    0    0     0    41 1009   39  0  0 100  0  0
 0  0      0 3029752 199616 690980    0    0     0     3 1004   36  0  0 100  0  0
 0  0      0 3029752 199616 690980    0    0     0     4 1004   36  0  0 100  0  0
 0  0      0 3029752 199616 690980    0    0     0     6 1003   33  0  0 100  0  0

 0  0      0 3029752 199616 690980    0    0     0     5 1003   33  0  0 100  0  0 

說明:

字段說明:

Procs(進程):

r: 運行隊列中進程(cheng)數量

b: 等待IO的進程數量

Memory(內存):

swpd: 使(shi)用虛擬內存大小

free: 可用內存大小

buff: 用作緩沖(chong)的內存大小

cache: 用作緩存的(de)內(nei)存大小

Swap:

si: 每(mei)秒從(cong)交換區寫到內存的大小

so: 每秒寫入交換區的內(nei)存大小

IO:(現(xian)在(zai)的(de)Linux版本塊(kuai)的(de)大小(xiao)為(wei)1024bytes)

bi: 每秒讀取的(de)塊數

bo: 每秒寫入的塊數

系統:

in: 每秒中(zhong)斷數,包括(kuo)時鐘中(zhong)斷。

cs: 每秒上下(xia)文切(qie)換數。

CPU(以百分(fen)比表(biao)示):

us: 用戶進程執(zhi)行(xing)時間(user time)

sy: 系(xi)統(tong)進程執(zhi)行時間(system time)

id: ;空閑(xian)時間(jian)(包括IO等(deng)待(dai)時間(jian)),中央處理器的空閑時(shi)間 。以百分比表(biao)示。

wa: 等待IO時間

備注(zhu): 如果(guo) r經(jing)常大于(yu) 4 ,且(qie)id經(jing)常少于(yu)40,表(biao)示cpu的(de)(de)負荷很重。如果(guo)pi,po 長期不等于(yu)0,表(biao)示內存不足(zu)。如果(guo)disk 經(jing)常不等于(yu)0, 且(qie)在(zai) b中(zhong)的(de)(de)隊列(lie) 大于(yu)3, 表(biao)示 io性(xing)(xing)能不好(hao)。Linux在(zai)具(ju)(ju)有高穩(wen)定性(xing)(xing)、可(ke)靠性(xing)(xing)的(de)(de)同時(shi),具(ju)(ju)有很好(hao)的(de)(de)可(ke)伸縮性(xing)(xing)和擴展(zhan)性(xing)(xing),能夠針對不同的(de)(de)應(ying)用和硬件(jian)環境調(diao)整,優化出滿足(zu)當(dang)前應(ying)用需要(yao)的(de)(de)最佳性(xing)(xing)能。因(yin)此(ci)企業在(zai)維護Linux系(xi)(xi)統(tong)、進行系(xi)(xi)統(tong)調(diao)優時(shi),了解系(xi)(xi)統(tong)性(xing)(xing)能分析(xi)工具(ju)(ju)是至(zhi)關重要(yao)的(de)(de)。

命令:

vmstat 5 5

表(biao)示在5秒時間內進行(xing)5次采(cai)樣。將得(de)到一個數(shu)據(ju)匯(hui)總他能夠反映真正的系(xi)統情況。

實例2:顯示活躍和非活躍內存(cun)

命(ming)令:

vmstat -a 2 5

輸出:

[root@localhost ~]# vmstat -a 2 5
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
 r  b   swpd   free  inact active   si   so    bi    bo   in   cs us sy id wa st
 0  0      0 3029752 387728 513008    0    0     0     2    3    2  0  0 100  0  0
 0  0      0 3029752 387728 513076    0    0     0     0 1005   34  0  0 100  0  0
 0  0      0 3029752 387728 513076    0    0     0    22 1004   36  0  0 100  0  0
 0  0      0 3029752 387728 513076    0    0     0     0 1004   33  0  0 100  0  0
 0  0      0 3029752 387728 513076    0    0     0     0 1003   32  0  0 100  0  0

[root@localhost ~]#  

說明:

使用-a選項(xiang)顯(xian)示活躍(yue)和(he)非活躍(yue)內存時,所顯(xian)示的內容除增加inact和(he)active外,其(qi)他顯(xian)示內容與例(li)子1相同(tong)。

字段說明:

Memory(內(nei)存):

inact: 非活躍內(nei)存大小(當使用(yong)-a選項時顯示(shi))

active: 活躍(yue)的內存大小(當使用-a選項(xiang)時(shi)顯示)

實例3:查看系(xi)統已經(jing)fork了(le)多(duo)少次

命令:

vmstat -f

輸(shu)出:

[root@SCF1129 ~]# vmstat -f

     12744849 forks

[root@SCF1129 ~]#

說明(ming):

這個數據是從/proc/stat中的processes字段里取得的

實例4:查看內存使用的詳細(xi)信息(xi)

命令:

vmstat -s

輸出:

[root@localhost ~]# vmstat -s
      4043760  total memory
      1013884  used memory
       513012  active memory
       387728  inactive memory
      3029876  free memory
       199616  buffer memory
       690980  swap cache
      6096656  total swap
            0  used swap
      6096656  free swap
        83587 non-nice user cpu ticks
          132 nice user cpu ticks
       278599 system cpu ticks
    913344692 idle cpu ticks
       814550 IO-wait cpu ticks
        10547 IRQ cpu ticks
        21261 softirq cpu ticks
            0 stolen cpu ticks
       310215 pages paged in
     14254652 pages paged out
            0 pages swapped in
            0 pages swapped out
    288374745 interrupts
    146680577 CPU context switches
   1351868832 boot time
       367291 forks 

說明:

這些信息的(de)分別來自于/proc/meminfo,/proc/stat和(he)/proc/vmstat

實例5:查(cha)看(kan)磁盤的讀(du)/寫

命(ming)令(ling):

vmstat -d

輸出:

 

[root@localhost ~]# vmstat -d
disk- ------------reads------------ ------------writes----------- -----IO------
       total merged sectors      ms  total merged sectors      ms    cur    sec
ram0       0      0       0       0      0      0       0       0      0      0
ram1       0      0       0       0      0      0       0       0      0      0
ram2       0      0       0       0      0      0       0       0      0      0
ram3       0      0       0       0      0      0       0       0      0      0
ram4       0      0       0       0      0      0       0       0      0      0
ram5       0      0       0       0      0      0       0       0      0      0
ram6       0      0       0       0      0      0       0       0      0      0
ram7       0      0       0       0      0      0       0       0      0      0
ram8       0      0       0       0      0      0       0       0      0      0
ram9       0      0       0       0      0      0       0       0      0      0
ram10      0      0       0       0      0      0       0       0      0      0
ram11      0      0       0       0      0      0       0       0      0      0
ram12      0      0       0       0      0      0       0       0      0      0
ram13      0      0       0       0      0      0       0       0      0      0
ram14      0      0       0       0      0      0       0       0      0      0
ram15      0      0       0       0      0      0       0       0      0      0
sda    33381   6455  615407   63224 2068111 1495416 28508288 15990289      0  10491
hdc        0      0       0       0      0      0       0       0      0      0
fd0        0      0       0       0      0      0       0       0      0      0
md0        0      0       0       0      0      0       0       0      0      0
[root@localhost ~]# 

 

說明:

這些信(xin)息主(zhu)要來(lai)自于/proc/diskstats.

merged:表示一次來自于合并的寫/讀請(qing)求,一般(ban)系統會把多個(ge)連接(jie)/鄰近的讀/寫請(qing)求合并到一起來操作.

實例6:查看/dev/sda1磁盤的讀/寫

命(ming)令:

輸出:

[root@SCF1129 ~]# df

文件系(xi)統                 1K-塊      已用      可(ke)用 已用% 掛載點

/dev/sda3            1119336548  27642068 1034835500   3% /tmpfs                 ;32978376         0  32978376   0% /dev/shm

/dev/sda1              1032088     59604    920056   7% /boot

[root@SCF1129 ~]# vmstat -p /dev/sda1

sda1          reads   read sectors  writes    requested writes

               18607    4249978          6         48[root@SCF1129 ~]# vmstat -p /dev/sda3

sda3    ;      reads   read sectors  writes    requested writes

              429350   35176268   28998789  980301488[root@SCF1129 ~]#

說明:

這些信息主要來自(zi)于(yu)/proc/diskstats

reads:來自于這個分區的讀的次數

read sectors:來自于這個分區的讀扇區的次數

writes:來自(zi)于這個分區(qu)的(de)寫的(de)次數

requested writes:來自于這個分區的寫請求次數

實例7:查看系統的slab信息(xi)

命令(ling):

vmstat -m

輸出:

[root@localhost ~]# vmstat -m
Cache                       Num  Total   Size  Pages
ip_conntrack_expect           0      0    136     28
ip_conntrack                  3     13    304     13
ip_fib_alias                 11     59     64     59
ip_fib_hash                  11     59     64     59
AF_VMCI                       0      0    960      4
bio_map_info                100    105   1064      7
dm_mpath                      0      0   1064      7
jbd_4k                        0      0   4096      1
dm_uevent                     0      0   2608      3
dm_tio                        0      0     24    144
dm_io                         0      0     48     77
scsi_cmd_cache               10     10    384     10
sgpool-128                   32     32   4096      1
sgpool-64                    32     32   2048      2
sgpool-32                    32     32   1024      4
sgpool-16                    32     32    512      8
sgpool-8                     45     45    256     15
scsi_io_context               0      0    112     34
ext3_inode_cache          51080  51105    760      5
ext3_xattr                   36     88     88     44
journal_handle               18    144     24    144
journal_head                 56     80     96     40
revoke_table                  4    202     16    202
revoke_record                 0      0     32    112
uhci_urb_priv                 0      0     56     67
UNIX                         13     33    704     11
flow_cache                    0      0    128     30
msi_cache                    33     59     64     59
cfq_ioc_pool                 14     90    128     30
cfq_pool                     12     90    216     18
crq_pool                     16     96     80     48
deadline_drq                  0      0     80     48
as_arq                        0      0     96     40
mqueue_inode_cache            1      4    896      4
isofs_inode_cache             0      0    608      6
hugetlbfs_inode_cache         1      7    576      7
Cache                       Num  Total   Size  Pages
ext2_inode_cache              0      0    720      5
ext2_xattr                    0      0     88     44
dnotify_cache                 0      0     40     92
dquot                         0      0    256     15
eventpoll_pwq                 3     53     72     53
eventpoll_epi                 3     20    192     20
inotify_event_cache           0      0     40     92
inotify_watch_cache           1     53     72     53
kioctx                        0      0    320     12
kiocb                         0      0    256     15
fasync_cache                  0      0     24    144
shmem_inode_cache           254    290    768      5
posix_timers_cache            0      0    128     30
uid_cache                     0      0    128     30
ip_mrt_cache                  0      0    128     30
tcp_bind_bucket               3    112     32    112
inet_peer_cache               0      0    128     30
secpath_cache                 0      0     64     59
xfrm_dst_cache                0      0    384     10
ip_dst_cache                  5     10    384     10
arp_cache                     1     15    256     15
RAW                           3      5    768      5
UDP                           5     10    768      5
tw_sock_TCP                   0      0    192     20
request_sock_TCP              0      0    128     30
TCP                           4      5   1600      5
blkdev_ioc                   14    118     64     59
blkdev_queue                 20     30   1576      5
blkdev_requests              13     42    272     14
biovec-256                    7      7   4096      1
biovec-128                    7      8   2048      2
biovec-64                     7      8   1024      4
biovec-16                     7     15    256     15
biovec-4                      7     59     64     59
biovec-1                     23    202     16    202
bio                         270    270    128     30
utrace_engine_cache           0      0     64     59
Cache                       Num  Total   Size  Pages
utrace_cache                  0      0     64     59
sock_inode_cache             33     48    640      6
skbuff_fclone_cache           7      7    512      7
skbuff_head_cache           319    390    256     15
file_lock_cache               1     22    176     22
Acpi-Operand               4136   4248     64     59
Acpi-ParseExt                 0      0     64     59
Acpi-Parse                    0      0     40     92
Acpi-State                    0      0     80     48
Acpi-Namespace             2871   2912     32    112
delayacct_cache              81    295     64     59
taskstats_cache               4     53     72     53
proc_inode_cache           1427   1440    592      6
sigqueue                      0      0    160     24
radix_tree_node           13166  13188    536      7
bdev_cache                   23     24    832      4
sysfs_dir_cache            5370   5412     88     44
mnt_cache                    26     30    256     15
inode_cache                2009   2009    560      7
dentry_cache              60952  61020    216     18
filp                        479   1305    256     15
names_cache                   3      3   4096      1
avc_node                     14     53     72     53
selinux_inode_security      994   1200     80     48
key_jar                       2     20    192     20
idr_layer_cache              74     77    528      7
buffer_head              164045 164800     96     40
mm_struct                    51     56    896      4
vm_area_struct             1142   1958    176     22
fs_cache                     35    177     64     59
files_cache                  36     55    768      5
signal_cache                 72    162    832      9
sighand_cache                68     84   2112      3
task_struct                  76     80   1888      2
anon_vma                    458    864     24    144
pid                          83    295     64     59
shared_policy_node            0      0     48     77
Cache                       Num  Total   Size  Pages
numa_policy                  37    144     24    144
size-131072(DMA)              0      0 131072      1
size-131072                   0      0 131072      1
size-65536(DMA)               0      0  65536      1
size-65536                    1      1  65536      1
size-32768(DMA)               0      0  32768      1
size-32768                    2      2  32768      1
size-16384(DMA)               0      0  16384      1
size-16384                    5      5  16384      1
size-8192(DMA)                0      0   8192      1
size-8192                     7      7   8192      1
size-4096(DMA)                0      0   4096      1
size-4096                   110    111   4096      1
size-2048(DMA)                0      0   2048      2
size-2048                   602    602   2048      2
size-1024(DMA)                0      0   1024      4
size-1024                   344    352   1024      4
size-512(DMA)                 0      0    512      8
size-512                    433    480    512      8
size-256(DMA)                 0      0    256     15
size-256                   1139   1155    256     15
size-128(DMA)                 0      0    128     30
size-64(DMA)                  0      0     64     59
size-64                    5639   5782     64     59
size-32(DMA)                  0      0     32    112
size-128                    801    930    128     30
size-32                    3005   3024     32    112
kmem_cache                  137    137   2688      1

這組(zu)信息(xi)來(lai)自于/proc/slabinfo

slab:由于內(nei)核會有(you)許(xu)多小對象這些對(dui)象(xiang)構造銷(xiao)毀(hui)十(shi)分頻繁比如(ru)i-nodedentry這些對(dui)象(xiang)如果每次構建的時候就向內存要一個頁(4kb)而其實(shi)只有幾個字節這(zhe)樣(yang)就會非常(chang)浪費為了解(jie)決這(zhe)個(ge)問題就(jiu)引入了一種新的(de)機制來處理在同一個頁框(kuang)中如何分配小存(cun)儲區而(er)slab可以對(dui)(dui)小對(dui)(dui)象進行分(fen)配(pei),這樣(yang)就不用為每一個對(dui)(dui)象分(fen)配(pei)頁框從而節(jie)省了空間(jian)內核對一些小對象創建(jian)析構很(hen)頻繁slab對這些小對象進行緩沖,可以重復利用,減(jian)少內(nei)存(cun)分配次數

posted @ 2012-12-25 21:51  peida  閱讀(40152)  評論(5)    收藏  舉報