淺談linux性能調優之二:優化swap分區

    先說說什麼是swap分區以及它的做用?     
    Swap分區,即交換區,Swap空間的做用可簡單描述爲:當系統的物理內存不夠用的時候,就須要將物理內存中的一部分空間釋放出來,以供當前運行的程序 使用。那些被釋放的空間可能來自一些很長時間沒有什麼操做的程序,這些被釋放的空間被臨時保存到Swap空間中,等到那些程序要運行時,再從Swap中恢 復保存的數據到內存中。這樣,系統老是在物理內存不夠時,才進行Swap交換。 其實,Swap的調整對Linux服務器,特別是Web服務器的性能相當重要。經過調整Swap,有時能夠越過系統性能瓶頸,節省系統升級費用。

         分配太多的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

淺談linux性能調優之二:優化swap分區 - 了了 - 了了的博客

 
        下面說說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數據庫

相關文章
相關標籤/搜索