Linux操作系統(tǒng)的內(nèi)存管理指南
在Linux下查看內(nèi)存我們一般用command free
[root@nonamelinux ~]# free
total used free shared buffers cached
Mem: 386024 377116 8908 0 21280 155468
-/ buffers/cache: 200368 185656
Swap: 393552 0 393552
下面是對這些數(shù)值的解釋:
第二行(mem):
total:總計(jì)物理內(nèi)存的大小。
used:已使用多大。
free:可用有多少。
Shared:多個(gè)進(jìn)程共享的內(nèi)存總額。
Buffers/cached:磁盤緩存的大小。
第三行(-/ buffers/cached):
used:已使用多大。
free:可用有多少。
第四行就不多解釋了。
區(qū)別:
第二行(mem)的used/free與第三行(-/ buffers/cache) used/free的區(qū)別。
這兩個(gè)的區(qū)別在于使用的角度來看,***行是從OS的角度來看,因?yàn)閷τ贠S,buffers/cached 都是屬于被使用,所以他的可用內(nèi)存是8908KB,已用內(nèi)存是377116KB,其中包括,內(nèi)核(OS)使用 Application(X,oracle,etc)使用的 buffers cached.
第三行所指的是從應(yīng)用程序角度來看,對于應(yīng)用程序來說,buffers/cached 是等于可用的,因?yàn)閎uffer/cached是為了提高文件讀取的性能,當(dāng)應(yīng)用程序需在用到內(nèi)存的時(shí)候,buffer/cached會(huì)很快地被回收。
所以從應(yīng)用程序的角度來說,可用內(nèi)存=系統(tǒng)free memory buffers cached.
如上例:
185656=8908 21280 155468
接下來解釋什么時(shí)候內(nèi)存會(huì)被交換,以及按什么方交換。
當(dāng)可用內(nèi)存少于額定值的時(shí)候,就會(huì)開會(huì)進(jìn)行交換.
如何看額定值(RHEL4.0):
#cat /proc/meminfo
交換將通過三個(gè)途徑來減少系統(tǒng)中使用的物理頁面的個(gè)數(shù):
1.減少緩沖與頁面cache的大小,
2.將系統(tǒng)V類型的內(nèi)存頁面交換出去,
3.換出或者丟棄頁面。(Application 占用的內(nèi)存頁,也就是物理內(nèi)存不足)。
事實(shí)上,少量地使用swap是不是影響到系統(tǒng)性能的。
【編輯推薦】