一、什麼叫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,如需轉載請自行聯系原作者