Memory

緩衝區高速記憶體和空閒記憶體

  • March 15, 2018

下面是 Ubuntu 中 free 的輸出:

$ free
            total       used       free     shared    buffers     cached
Mem:       8173180    8013092     160088          0    1076276    3091136
-/+ buffers/cache:    3845680    4327500
Swap:     11719380        312   11719068

總物理記憶體為 8 GB。使用的總記憶體接近這個值,但緩衝區高速記憶體使用的總記憶體只有一半,大約 4 GB。幾乎沒有任何記憶體被用作交換。

現在緩衝區記憶體是派生的,因為我們已經對磁碟進行了讀/寫,然後在第一次之後,應用程序被載入到記憶體中,直到不再需要加速讀/寫。因此磁碟緩衝的讀/寫總數為 4 GB。

好的,但是什麼樣的程序正在使用其他 4 個物理記憶體(不包括緩衝區記憶體)?我怎樣才能確定呢?

剩餘記憶體用於系統上執行的各種程序的堆和堆棧。正如 Joel Davis 在他的評論中所說,您可以使用gnome-system-monitoror ps(儘管您想要rss代替vsize)來查看哪些程序正在使用它。您還可以使用top命令行工具,該工具預設按 CPU 使用率排序。鍵入M,它將切換到按記憶體使用情況排序。

另外,我想糾正一個誤解:交換不使用記憶體。312 並不意味著 312KB 的 RAM 用於交換。這實際上意味著使用 312 KB 的交換空間代替 RAM。如果您的機器記憶體不足,它將開始將記憶體內容寫入磁碟(“分頁”)以釋放記憶體。該交換號告訴您已將多少 RAM 寫入磁碟。

引用自:https://unix.stackexchange.com/questions/128172