歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於Linux

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

淺談linux性能調優之二:優化swap分區   淺談linux性能調優之一:磁盤分區策略 http://www.2cto.com/os/201307/226371.html     先說說什麼是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              下面說說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
Copyright © Linux教程網 All Rights Reserved