天天看點

linux下的swap分區

一、什麼叫swap分區

    swap分區,即交換區,swap空間的作用可簡單描述為:當系統的實體記憶體不夠用的時候,就需要将實體記憶體中的一部分空間釋放出來,以供目前運作的程式使用。那些被釋放的空間可能來自一些很長時間沒有什麼操作的程式,這些被釋放的空間被臨時儲存到Swap空間中,等到那些程式要運作時,再從Swap中恢複儲存的資料到記憶體中。

二、swap配置對性能的影響

    Swap的調整對Linux伺服器,特别是Web伺服器的性能至關重要。通過調整Swap,有時可以越過系統性能瓶頸,節省系統更新費用。但是配置設定太多的Swap空間會浪費磁盤空間,而Swap空間太少,則系統會發生錯誤。

    如果系統的實體記憶體用光了,系統就會跑得很慢,但仍能運作;如果Swap空間用光了,那麼系統就會發生錯誤。例如,Web伺服器能根據不同的請求數量衍生出多個服務程序(或線程)如果系統實體記憶體不夠用,網站打開會很慢,ping可能會丢包,延遲很大;如果Swap空間用完,則服務程序無法啟動,通常會出現“application is out of memory”的錯誤,嚴重時會造成服務程序的死鎖。是以Swap空間的配置設定是很重要的。

三、swap分區的劃分規則

    在linux中,我們對swap分區的劃分有一定的規則,當實體記憶體小于2G時,swap分區大小為實體記憶體的2倍;超過2G的部分,swap分區大小跟實體記憶體相等。

公式如下:x代表實體記憶體,y代表swap分區

    當x<2G 時,y=2x;

    當2G<x<32G 時,y=4+(x-2);

    當x>=32G 時,y<=x;

例:當實體記憶體為4G的時候,swap為6G;當實體記憶體大于32G的時候,swap分區小于等于實體記憶體比較好。

附:規則不是一成不變的,所謂swap分區的劃分沒必要太過于死闆,這裡所說的規則僅供參考。

四、記憶體的檢視

1、free -m

    -m已兆為機關檢視

2、swapon -s 

    檢視swap的狀态,已用和未用資源的大小。

3、top

    動态檢視,但是使用top指令時資源消耗比較大

   top -p pid 檢視某個程序的資源使用情況

其他:P:按%CPU使用率排行

      T:按MITE+排行

  M:按%MEM排行

4、pamp 檢視程序的記憶體映像資訊

    pmap -d pid

[root@xujunxian /]# pmap -d 1 | tail

00b7c000       4 rw--- 0000000000024000 0fd:00000 init

00efc000       4 r-x-- 0000000000000000 000:00000   [ anon ]

00f54000      36 r-x-- 0000000000000000 0fd:00000 libnih-dbus.so.1.0.0

00f5d000       4 r---- 0000000000008000 0fd:00000 libnih-dbus.so.1.0.0

00f5e000       4 rw--- 0000000000009000 0fd:00000 libnih-dbus.so.1.0.0

01abd000     132 rw--- 0000000000000000 000:00000   [ anon ]

b76fe000      12 rw--- 0000000000000000 000:00000   [ anon ]

b770f000       4 rw--- 0000000000000000 000:00000   [ anon ]

bfb59000      84 rw--- 0000000000000000 000:00000   [ stack ]

mapped: 2896K    writeable/private: 292K    shared: 0K

最後一行的值,mapped 表示該程序映射的虛拟位址空間大小,也就是該程序預先配置設定的虛拟記憶體大小,即ps出的vsz;writeable/private  表示程序所占用的私有位址空間大小,也就是該程序實際使用的記憶體大小  ;    

shared 表示程序和其他程序共享的記憶體大小。

      本文轉自Jx戰壕  51CTO部落格,原文連結:http://blog.51cto.com/xujpxm/1542985,如需轉載請自行聯系原作者

繼續閱讀