
有些人大概必然要問出來個一二三來,荷蘭服務(wù)器 英國主機(jī)租用,那么請繼承往下看。
Linux的根基原則是沒有資源應(yīng)該被揮霍.因此焦點會利用盡大概多的RAM,來緩存來自當(dāng)?shù)睾烷L途的文件系統(tǒng)的信息.系統(tǒng)做讀寫操縱的時候,會將與當(dāng)前運行的歷程相關(guān)的數(shù)據(jù)只管存儲在RAM里.系統(tǒng)陳訴的緩存是緩沖和頁緩存兩者之和.緩存并不是在歷程竣事的時候被接納(你大概很快會啟動別的一個歷程,需要同樣的數(shù)據(jù)),而是隨需接納–好比,當(dāng)你啟動一個需要大量內(nèi)存的歷程時,Linux焦點會從內(nèi)存中接納緩存,將獲得的內(nèi)存分派給新的歷程.
有些區(qū)域,好比匿名內(nèi)存映射(mmps)和共享內(nèi)存區(qū)域,它們被陳訴為緩存,但不是被焦點直接釋放.一般的緩存不映射到歷程的地點空間,僅僅是簡樸的焦點映射,而這些出格的緩存映射到所有掛接到它們上面的歷程.
所以你執(zhí)行top呼吁看到的
Tasks: 330 total, 3 running, 327 sleeping, 0 stopped, 0 zombie
Cpu(s): 13.4% us, 6.3% sy, 0.0% ni, 79.0% id, 0.7% wa, 0.7% hi, 0.0% s
Mem: 2066800k total, 1962740k used, 104060k free, 50828k buffers
Swap: 2097136k total, 960k used, 2096176k free, 1349532k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
6921 my_sql 15 0 131m 20m 5244 S 27 1.0 244:57.46 mysqld
18665 vhost 15 0 24980 10m 3588 S 3 0.5 0:00.34 httpd
19878 vhost 16 0 25800 11m 3584 S 3 0.6 0:00.10 httpd
19900 vhost 15 0 24884 10m 3584 S 1 0.5 0:00.03 httpd
Mem: 2066800k total, 1962740k used,并不是代表你的應(yīng)用措施已經(jīng)利用了1.9G的內(nèi)存,這1.9G是包括了:應(yīng)用措施內(nèi)存 + 緩沖 + 緩存的內(nèi)存的,需要用free呼吁查察.
下面是一個例子(單元是MB):
# free -m
total used free shared buffers cached
Mem: 2018 1927 91 0 45 1293
-/+ buffers/cache: 588 1430
Swap: 2047 0 2047
在這里例子中,應(yīng)用措施只利用了588MB內(nèi)存,尚有1430MB空閑內(nèi)存可以利用.
一些簡樸的計較要領(lǐng):
物理已用內(nèi)存 = 實際已用內(nèi)存 - 緩沖 - 緩存 = 1927M - 45M - 1293M
物理空閑內(nèi)存 = 總物理內(nèi)存 - 實際已用內(nèi)存 + 緩沖 + 緩存
應(yīng)用措施可用空閑內(nèi)存 = 總物理內(nèi)存 - 實際已用內(nèi)存
應(yīng)用措施已用內(nèi)存 = 實際已用內(nèi)存 - 緩沖 - 緩存