Linux swap優化

swappiness的值的大小對如何使用swap分區是有着很大的聯繫的。swappiness=0的時候表示最大限度使用物理內存,然後纔是 swap空間,swappiness=100的時候表示積極的使用swap分區,並且把內存上的數據及時的搬運到swap空間裏面。linux的基本默認設置爲60,具體如下:


一般默認值都是60   

[root@timeserver ~]# cat /proc/sys/vm/swappiness
60

也就是說,你的內存在使用到100-60=40%的時候,就開始出現有交換分區的使用。大家知道,內存的速度會比磁盤快很多,這樣子會加大系統io,同時造的成大量頁的換進換出,嚴重影響系統的性能,所以我們在操作系統層面,要儘可能使用內存,對該參數進行調整。


臨時調整的方法如下,我們調成10:
[root@timeserver ~]# sysctl vm.swappiness=10
vm.swappiness = 10
[root@timeserver ~]# cat /proc/sys/vm/swappiness
10
這只是臨時調整的方法,重啓後會回到默認設置的

要想永久調整的話,需要將
需要在/etc/sysctl.conf修改,加上:
[root@timeserver ~]# cat /etc/sysctl.conf

# Controls the maximum number of shared memory segments, in pages
kernel.shmall = 4294967296
vm.swappiness=10


激活設置

[root@timeserver ~]# sysctl -p


在linux中,可以通過修改swappiness內核參數,降低系統對swap的使用,從而提高系統的性能。


遇到的問題是這樣的,新版本產品發佈後,每小時對內存的使用會有一個尖峯。雖然這個峯值還遠沒有到達服務器的物理內存,但確發現內存使用達到峯值時系統開始使用swap。在swap的過程中系統性能會有所下降,表現爲較大的服務延遲。對這種情況,可以通過調節swappiness內核參數降低系統對swap的使用,從而避免不必要的swap對性能造成的影響。


簡單地說這個參數定義了系統對swap的使用傾向,默認值爲60,值越大表示越傾向於使用swap。可以設爲0,這樣做並不會禁止對swap的使用,只是最大限度地降低了使用swap的可能性。


通過sysctl -q vm.swappiness可以查看參數的當前設置。


修改參數的方法是修改/etc/sysctl.conf文件,加入vm.swappiness=xxx,並重起系統。這個操作相當於是修改虛擬系統中的/proc/sys/vm/swappiness文件,將值改爲XXX數值。


如果不想重起,可以通過sysctl -p動態加載/etc/sysctl.conf文件,但建議這樣做之前先清空swap。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章