Linux 系統 RAM 使用淺析

摘要

        每次登陸Linux系統用free命令查看系統內存信息時,發現used接近於ram的大小,free列的數值都小的可憐。看起來就像是系統ram不足一樣。但實際情況並非如此。

1. Linux系統借用大量空閒的ram用於disk cacheing

        Linux系統會借用大量空閒的ram用於disk cacheing,以提供系統的運行速度和響應速度,這顯而易見。當應用程序需要更多的內存時,系統會把disk cacheing的髒數據寫入物理磁盤,然後歸還ram,這裏面有一套完善的機制,能夠保證disk cache能迅速的歸還ram。
        Linux系統借用大量空閒的ram用於disk cache的機制有百利而無一害,目前沒有什麼方法也沒有必要禁用這套機制。

2. top和free命令中顯示的used列的真實含義

        top和free命令顯示的used列的值,跟我們通常理解的used是有點差異的,我們通常理解的used,是指“當前正在被應用程序使用的ram”,而通過top和free命令顯示的used列的值,實際上包括兩部分,一部分跟我們理解的一樣“當前正在被應用程序使用的ram”,還有一部分是“被借用做其他事情,但是如果應用程序需要,能及時歸還的ram”,比如用作disk cacheing,是通過在top和free命令顯示出來的“buffers”或“cached”的值來體現的

3. 查看真實的free ram值

        要查看系統可用的ram的值,其實很簡單,對於高版本的Linux操作系統,通過free命令看"available"列:
  1. [root@localhost ~]# free -m
  2. total used free shared buff/cache available
  3. Mem: 1504 1491 13 0 855 869
  4. Swap: 2047 6 2041
       對於低版本的Linux操作系統,通過free命令看 "-/+ buffers/cache":
  1. [root@localhost ~]# free -m
  2. total used free shared buffers cached
  3. Mem: 1869 523 1346 2 22 194
  4. -/+ buffers/cache: 306 1563
  5. Swap: 2047 0 2047

4. 如何判斷系統是否真的缺少ram

        一個ram充裕的linux 系統,是這樣的:
        (1)free命令輸出的“free”列的值接近與0;
        (2)“userd”列的值接近於“total”;
        (3)"available"或"-/+ buffers/cache"至少爲“total”的20%以上;
        (4)swap的“used”值極小;

        如果出現下列現象之一,就說明系統的ram不足了:
        (1)"available"或"-/+ buffers/cache"列的值接近與0;
        (2)swap的“used”值出現大幅增長;
        (3)通過執行dmesg|grep oom-killer查詢到OutOfMemory-killer相關的信息;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章