LINUX 佔用較多記憶體 解釋

gaopengtttt發表於2009-08-31

轉自 網路

Linux/Unix與windows在管理記憶體的方式上是不一樣的。它的管理方式是充分的利用系統的記憶體,而windows則是無論使用多大的記憶體都要使用一定的虛擬記憶體(linux中swap)。

  所以說即便是一個剛裝上不久的linux系統,記憶體使用量達到90%,也很正常。但是,這個記憶體佔用量不會達到100%的,因為當達到一個佔用量的時候,就會啟用swap(虛擬記憶體)。

   (關於為何會使用高的解釋:

     a、linux把剩餘的記憶體都用做磁碟快取了,這樣可以減少硬碟讀寫次數,Linux在磁碟操作上的速度是要比windows快的。這樣做並不會影響系統速度。換句話說就是Linux 是先佔用,然後再慢慢使用,windows是要用多少就佔用多少。Linux 不會讓記憶體空著的,程式用不了就當快取用。

     b、桌面追求的是反應速度,伺服器追求的是吞吐量,兩者是有差別的,linux側重後者。特別體現在任務排程、記憶體管理。從桌面的角度,儘量要保留一定的空閒記憶體(如果不夠,先將後臺程式swap出去),當使用者要開啟新程式的時候,可以迅速反應。桌面常用的模組預先駐留記憶體。而linux是著名的lazy的方式。

  Linux/Unix系統是非常穩健的,雖然記憶體佔用顯示90%以上,但依然可保證365天以上無須重啟。對於Linux系統,評估其壓力的主要指標是最近5分鐘的負載指數。比如用top去看,可以看到“2.20,2.27,1.81”這樣的數字。

  分別表示5分鐘內的、10分鐘內的、15分鐘內排隊的程式數。只要第一個數字即5分鐘內的負載不大於5,系統就是健康的,不用做任何維護

  如果這個數字大於了5,那麼通常系統速度就會變慢,一般有如下幾種可能:

  1) 有程式佔用大量CPU,使用top命令來檢查(看看是否有java程式鎖死之類的故障)

  2) 有程式佔用大量記憶體,使得記憶體真正不夠用了(這個才是真正需要加記憶體的時候)

  比如由於MySQL(和PHP搭配之最佳組合)在較大負載下執行容量為GB級別的資料庫導致記憶體不夠用,需要給伺服器插入更多實體記憶體

  3)磁碟系統讀寫故障,IO吞吐錯誤造成CPU負載上升,需要光碟引導進入單使用者模式掃描修復磁碟,修不好就只能更換新硬碟了

  因此,對於Linux/Unix系統記憶體佔用的百分比,無須過於關心,一般檢查系統負載引數即可。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7728585/viewspace-613595/,如需轉載,請註明出處,否則將追究法律責任。

相關文章