分配太多的Swap空間會浪費磁盤空間,而Swap空間太少,則系統會發生錯誤。
若是系統的物理內存用光了,系統就會跑得很慢,但仍能運行;若是Swap空間用光了,那麼系統就會發生錯誤。例如,Web服務器能根據不一樣的請求數量衍生 出多個服務進程(或線程),若是Swap空間用完,則服務進程沒法啓動,一般會出現「application is out of memory」的錯誤,嚴重時會形成服務進程的死鎖。所以Swap空間的分配是很重要的。
一般狀況下,Swap空間應大於或等於物理內存的大小,最小不該小於64M,一般Swap空間的大小應是物理內存的2-2.5倍。但根據不一樣的應用,應有 不一樣的配置:若是是小的桌面系統,則只須要較小的Swap空間,而大的服務器系統則視狀況不一樣須要不一樣大小的Swap空間。特別是數據庫服務器和Web服 務器,隨着訪問量的增長,對Swap空間的要求也會增長,具體配置參見各服務器產品的說明。
另外,Swap分區的數量對性能也有很大的影響。由於Swap交換的操做是磁盤IO的操做,若是有多個Swap交換區,Swap空間的分配會以輪流的方式 操做於全部的Swap,這樣會大大均衡IO的負載,加快Swap交換的速度。若是隻有一個交換區,全部的交換操做會使交換區變得很忙,使系統大多數時間處 於等待狀態,效率很低。用性能監視工具就會發現,此時的CPU並不很忙,而系統卻慢。這說明,瓶頸在IO上,依靠提升CPU的速度是解決不了問題的
看了這麼多,再想一想有時在論壇中的有的人說的他們的內存很大而不必使用swap分區,別人10臺機器能解決的問題,咱們若合理使用swap分區,使用8臺機器能解決的問題,何樂而不爲呢 ?
下面來看看紅帽官方的建議:
圖1
linux
下面說說swap分區的優化:
1.首先,作到儘可能使用分區而非文件,記住除非萬不得已
2.固然也多是空間過小,那麼就本身添加swap分區
3.特別注意的的是使用分區號較小的分區(我在‘淺談linux性能優化之一:分區策略’中強調過)
4.分佈到不一樣設備上能夠實現輪循
5.若真的有多個swap分區,也能夠指定優先級,意思也就是優先使用性能較好的分區
注意在配置文件/etc/fstab中的書寫:(數字越大,優先級越高,也可使用swapon -p 來指定)
/dev/hda1 swap swap defaults,pri=10 0 0
/dev/hda5 swap swap defaults,pri=5 0 0
6.一個重要的參數:
[root@desktop31 ~]# sysctl -a | grep vm.swa
vm.swappiness = 60
linux內核調優過程有幾個特殊的值,包括這個,不是具體的百分比,而是一個指望值,在這裏越接近0儘可能使用cache,越接近100儘可能使用swap,只是個趨向值
7.兩個通常不調節的值:
vm.swap_token_timeout = 300 時間間隔
vm.page-cluster = 3 一次性寫入swap的頁面數2^3*4K = 32K數據庫