Linux的記憶體使用


[root@ntkbr06 proc]# free

                                           total           used           free         shared        buffers         cached
Mem:                             1030528     1021884         8644                 0         88832        793816  
-/+ buffers/cache:                                139236     891292                                                          
Swap:                             2096472       112268    1984204                                                    


Mem:表示實體記憶體使用統計

-/+ buffers/cached:表示實體記憶體的緩存統計

Swap:表示硬盤上交換分區的使用情況



為什麼剩下的記憶體只剩下8M,這是因為Linux認為記憶體沒有使用非常的可惜,所以把空的記憶體

當成Cache及Buffer使用,等到程式需要使用記憶體時,才將Cache、Buffer空出來使用。

第二行(mem)的used/free與第三行(-/+ buffers/cache) used/free的區別:

第二行是從OS的角度來看, buffers/cached 都是屬於被使用,所以可用記憶體是8M

第三行是從應用程式角度來看,當應用程式需再用到記憶體的時候,會回收buffer/cached的空間,所以可用記憶體是890M

r1_free + r1_buffers + r1_cached = r2_free

8644    +    88832    +   793816   = 891292    --> 記憶體中可用的部份

r2_used + r2_free = r1_total

139236 + 891292 = 1030528    --> 實際記憶體大小


因此,程式實際佔用的記憶體為-/+ buffers/cache中used的部份


Windows 11安裝時跳過網路連線