linux中的內存

       Linux/Unix與windows在管理內存的方式上是不同的。它的管理方式是充分的利用系統的內存,而windows則是不管使用多大的內存都要使用必定的虛擬內存(linux中swap)。

  因此說即使是一個剛裝上不久的linux系統,內存使用量達到90%,也很正常。可是,這個內存佔用量不會達到100%的,由於當達到一個佔用量的時候,就會啓用swap(虛擬內存)。java

   (關於爲什麼會使用高的解釋:linux

     a、linux把剩餘的內存都用作磁盤緩存了,這樣能夠減小硬盤讀寫次數,Linux在磁盤操做上的速度是要比windows快的。這樣作並不會影響系統速度。換句話說就是Linux 是先佔用,而後再慢慢使用,windows是要用多少就佔用多少。Linux 不會讓內存空着的,程序用不了就當緩存用。數據庫

     b、桌面追求的是反應速度,服務器追求的是吞吐量,二者是有差異的,linux側重後者。特別體如今任務調度、內存管理。從桌面的角度,儘可能要保留必定的空閒內存(若是不夠,先將後臺進程swap出去),當用戶要打開新程序的時候,能夠迅速反應。桌面經常使用的模塊預先駐留內存。而linux是著名的lazy的方式。)windows

  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系統內存佔用的百分比,無須過於關心,通常檢查系統負載參數便可

相關文章
相關標籤/搜索