最近遇到了類似的問題, swap & memroy的使用量(usage)非常高, 但卻看不出哪個process在用.

所以找了一些可以清記憶體的指令. 並做一下記錄

Free Memory Commmand

# Clear PageCache only.
sync; echo 1 > /proc/sys/vm/drop_caches

# Clear dentries and inodes.
sync; echo 2 > /proc/sys/vm/drop_caches

# Clear PageCache, dentries and inodes.
sync; echo 3 > /proc/sys/vm/drop_caches

Show Memory Usage Command

先記錄一下Free這個指令 & 他輸出的結果說明

  • total: memory總數 - 1045340
  • used: 已使用的momory數 - 834640
  • free: 空閒的memory數 - 210700
  • buffers: Buffer Cache - 2460
  • cached: Page Cache - 38592

-/+ buffers/cache的意思是:

-buffers/cache 的內存數 (used - buffers - cached)
+buffers/cache 的內存數 (free + buffers + cached)

所以-buffers/cache是被程序吃掉的內存, 而+buffers/cache是可以挪用的內存總數.

Reference