2016年6月4日 星期六

Linux 記憶體使用量 used、free、buffers、cached

用 top 指令查看記憶體使用狀況時,
有時會發現 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


1 則留言: