有時會發現 used 使用的越來越多, free 的記憶體越來越來少,但系統服務似乎沒變慢,
反而是重開機後,free 的記憶體變多了,系統服務卻變慢了,
再跑一段時間之後,free 的記憶體變少,系統服務又變快了。
這種情況,可以再看 buffers、cached 的量,
可能是記憶體被 buffers、cached 使用掉,
但在 buffers、cached 的記憶體,只是系統為了增加性能而使用,
若有應用程式須要時,系統便會讓出來,所以才會有使用一段時間,反而變快的感覺。
top - 21:03:07 up 172 days, 19:36, 1 user, load average: 0.01, 0.04, 0.00 Tasks: 417 total, 1 running, 416 sleeping, 0 stopped, 0 zombie Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 65925940k total, 65635248k used, 290692k free, 292772k buffers Swap: 33030140k total, 7848k used, 33022292k free, 55499140k cached
用 free 指令查看記憶體使用狀況時,
可發現有三行資料
第1行:Mem
第2行:-/+ buffers/cache
第3行:Swap
total used free shared buffers cached Mem: 65925940 65635092 290848 0 292772 55499140 -/+ buffers/cache: 9843180 56082760 Swap: 33030140 7848 33022292第1行資料,在 top 指令中也有,
在第2行資料,可發現
第2行(free)(56082760) = 第1行(free)(290848) + 第1行(buffers)(292772) + 第1行(cached)(55499140)
可見第2行(-/+ buffers/cache),所指的 free 也包含 buffers/cache,也就是系統還可再利用的記憶體大小。
參考:
Linux 的記憶體快取(Cache Memory)功能:Linux 系統把記憶體用光了? - G. T. Wang
每天一个linux命令(45):free 命令 - peida - 博客园
linux - Meaning of the buffers/cache line in the output of free - Server Fault
說明的很白話很好懂!
回覆刪除