1. 程式人生 > >Linux內核管理--內存(一)

Linux內核管理--內存(一)

內核

1)Linux把空閑的物理內存劃出一部分用作buffer,cache

2)buffer cache是高速緩存環從,目的是為了解決磁盤讀取速度遠小於內存這個問題,cpu從內存直接讀取最快;

3)但是物理內存有限,不可能所有數據都在物理內存,swap交換分區就出現了,內核會根據“”最近經常使用“”算法,把不經常使用的內存數據交換到swap;

4)有時可以發現物理內存充足,swap也使用了很多也是正常的,因為linux內存交換是不時在進行的,一個占用內存資源很大的程序開始時,會把不經常用的數據放到swap,這個程序結束時,資源釋放了一些,但是交換到swap的也不會馬上回到物理內存,除非有必要。

5)swap中的數據如果需要調用,會被重新交換進物理內存,如果這時候物理內存沒有空間,它們會被退回到swap, 幾次之後可能swap和物理內存都沒有空間存儲這些頁面,系統就會假死。

6)free項看內存時,shared表示多個進程共享的內存資源,自己free和used時不能忽略buffer cache,真正的free數量是used+buffer/cached, 其實free命令輸出的數值一個是內核視角(mem一行),一個是用戶視角(加上buffer/cache)。

7)buffer是寫操作緩沖塊設備的,cache是記憶的文件。




Linux內核管理--內存(一)