qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          查看Linux服務器下的內存使用情況

           查看Linux服務器下的內存使用情況 ,可以使用命令free -m。注意此命令只在Linux下有效,在FreeBSD中沒有此命令。命令如下所示:

            used:已經使用的內存數

            free:空閑的內存數

            shared:多個進程共享的內存總額

            -buffers/cache:(已用)的內存數,即used-buffers-cached

            +buffers/cache:(可用)的內存數,即free+buffers+cached

            得出結論:

            可用內存的計算公式為:

            可用內存=free+buffers+cached,即2551MB+268MB+917MB=3737MB

            很久以前在筆記本上用Ubuntu8.04時就覺得Linux管理內存的機制非常優秀,簡而言之:Linux的內存是拿來用的,而不是拿來看的。我與一個朋友探討Linux的使用情況時,他問我為什么Linux使用的內存這么高。他機器上1GB的內存free才232MB,而Windows XP才用了200MB不到的樣子。這其實是被Linux的free命令之表象迷惑了,Linux的內存使用是很有講究的。還是舉例說明,如下的free命令所顯示的是當前內存的使用情況,-m的意思是用M個字節來顯示內容,我們來一起看看。

            在第一部分Mem行中有如下參數。

            total:內存總數,即1002MB
            used:已經使用的內存數,即769MB
            free:空閑的內存數,即232MB
            shared:當前已經廢棄不用,總是0
            buffers Buffer:緩存內存數,即62MB
            cached Page:緩存內存數,即421MB

            其中,內存總數與已使用內存數和空閑內存數的關系是:

            total(1002M)=used(769M)+free(232M)

            在第二部分內容(-/+buffers/cache)中各參數如下所示。

            (-buffers/cache):used內存數,即286MB(指的是第一部分Mem行中的used-buffers-cached)。
            (+buffers/cache):free內存數,即715MB(指的是第一部分Mem行中的free+buffers+cached)。

            可見-buffers/cache反映的是被程序實實在在用掉的內存,而+buffers/cache反映的是可以挪用的內存總數。

            第三部分是指交換(swap)分區,大家應該都明白,這里就不再講了。

            有可能大家看了上面的解釋還是不太明白。比如:第一部分(Mem)與第二部分(-/+buffers/cache)的結果有關,used和free為什么這么奇怪?其實我們可以從兩個方面來分析。對操作系統來講這兩項是Mem的參數,buffers/cached都屬于被使用,所以它認為free只有232MB;對應用程序來講+buffers/cached等同于可用的內存,因為buffer/cached可提高程序執行的性能,當程序使用內存時,buffer/cached很快就會被使用。所以從應用的角度來看,應以(-/+buffers/cache)的free和used為主,即我們主要看與它相關的free和used就可以了。另外告訴大家一些常識,為了提高磁盤和內存的存取效率,對Linux做了很多精心的設計,除了對dentry進行緩存(用于VFS、加速文件路徑名到inode的轉換)外,還采取了兩種主要Cache方式:Buffer Cache和Page Cache。前者用于針對磁盤塊的讀寫,后者用于針對文件inode的讀寫。這些Cache能有效地縮短I/O系統調用(比如read、write、getdents)的時間。

            在Linux中,內存是拿來用的,不是拿來看的。而在Windows中,無論你的真實物理內存有多少,它都會用硬盤交換文件來讀,即使是內存還有一大部分。這也就是Windows常常提示虛擬空間不足的原因。可以想見,硬盤怎么會快過內存,所以我們在觀察Linux的內存使用情況時,只要沒發現用swap的交換空間,就不用擔心自己的內存太少。如果常常看到swap用了很多,那么你就要考慮加物理內存了。這也是在Linux服務器上看內存是否夠用的標準。

          posted on 2011-11-29 11:15 順其自然EVO 閱讀(2515) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          <2011年11月>
          303112345
          6789101112
          13141516171819
          20212223242526
          27282930123
          45678910

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 巴林左旗| 巴彦淖尔市| 商城县| 松潘县| 娄底市| 会宁县| 大宁县| 新巴尔虎左旗| 广东省| 长垣县| 陵水| 沁水县| 北流市| 黎平县| 广南县| 汝南县| 文登市| 镇坪县| 阿尔山市| 枣庄市| 阿巴嘎旗| 龙胜| 桐梓县| 衡阳县| 邹平县| 偏关县| 桂林市| 绍兴县| 甘谷县| 肇源县| 塔城市| 龙岩市| 安康市| 安国市| 神农架林区| 开鲁县| 苍山县| 泗阳县| 霍山县| 正阳县| 樟树市|