- 論壇徽章:
- 0
|
這些天做linux內(nèi)核分析實驗,第一個是讀/proc解析當(dāng)前系統(tǒng)狀態(tài),做到內(nèi)存時,嚇了我一跳:
大眼一看,free內(nèi)存只有8960K,尋思莫非中了什么linux病毒?!
上網(wǎng)搜了一下,原來如此![root@localhost ~]# cat /proc/meminfoMemTotal: 515244 kBMemFree: 8960 kBBuffers: 18864 kBCached: 232428 kBSwapCached: 18564 kBActive: 345144 kBInactive: 128300 kBHighTotal: 0 kBHighFree: 0 kBLowTotal: 515244 kBLowFree: 8960 kBSwapTotal: 3068372 kBSwapFree: 3038244 kBDirty: 3352 kBWriteback: 0 kBAnonPages: 212780 kBMapped: 37144 kBSlab: 21624 kBSReclaimable: 6172 kBSUnreclaim: 15452 kBPageTables: 4280 kBNFS_Unstable: 0 kBBounce: 0 kBCommitLimit: 3325992 kBCommitted_AS: 508444 kBVmallocTotal: 507896 kBVmallocUsed: 5168 kBVmallocChunk: 502528 kBHugePages_Total: 0HugePages_Free: 0HugePages_Rsvd: 0Hugepagesize: 4096 kB
cu評論
[root@nonamelinux ~]# free total used free shared buffers cachedMem: 386024 377116 8908 0 21280 155468-/+ buffers/cache: 200368 185656Swap: 393552 0 393552下面是對這些數(shù)值的解釋:第二行(mem):total:總計物理內(nèi)存的大小。used:已使用多大。free:可用有多少。Shared:多個進程共享的內(nèi)存總額。Buffers/cached:磁盤緩存的大小。第三行(-/+ buffers/cached):used:已使用多大。free:可用有多少。第四行就不多解釋了。區(qū)別:第二行(mem)的used/free與第三行(-/+ buffers/cache) used/free的區(qū)別。這兩個的區(qū)別在于使用的角度來看,第一行是從OS的角度來看,因為對于OS,buffers/cached 都是屬于被使用,所以他的可用內(nèi)存是 8908KB,已用內(nèi)存是377116KB,其中包括,內(nèi)核(OS)使用+Application(X,oracle,etc)使用的+buffers+ cached. 第三行所指的是從應(yīng)用程序角度來看,對于應(yīng)用程序來說,buffers/cached 是等于可用的,因為buffer/cached是為了提高文件讀取的性能,當(dāng)應(yīng)用程序需在用到內(nèi)存的時候,buffer/cached會很快地被回收。所以從應(yīng)用程序的角度來說,可用內(nèi)存=系統(tǒng)free memory+buffers+cached.如上例:185656=8908+21280+155468接下來解釋什么時候內(nèi)存會被交換,以及按什么方交換。當(dāng)可用內(nèi)存少于額定值的時候,就會開會進行交換.如何看額定值(RHEL4.0):#cat /proc/meminfo交換將通過三個途徑來減少系統(tǒng)中使用的物理頁面的個數(shù): 1.減少緩沖與頁面cache的大小,2.將系統(tǒng)V類型的內(nèi)存頁面交換出去, 3.換出或者丟棄頁面。(Application 占用的內(nèi)存頁,也就是物理內(nèi)存不足)。事實上,少量地使用swap是不是影響到系統(tǒng)性能的。
本文來自ChinaUnix博客,如果查看原文請點:http://blog.chinaunix.net/u1/41263/showart_528670.html |
|