首先使用free -m命令查看內存使用情況和swap的大小
關閉swap:
設置swap的大小:
bs指的是Block Size,就是每一塊的大小。這里的例子是1M,意思就是count的數字,是以1M為單位的。
count是告訴程序,新的swapfile要多少個block。這里是1024,就是說,新的swap文件是5G大小。
注意:可能需要點時間完成此步,耐心等待完成。
把增大后的文件變為swap文件:
重新打開swap:
讓swap在啟動的時候,自動生效。打開/etc/fstab文件,加上以下命令。然后保存。
再次查詢swap大小:
設置swappiness的比例值:
首先簡單的說一下swap分區的作用,其實linux系統下的swap分區與windows下的虛擬內存差不多一個意思,swap空間的作用可簡單這樣理解:當系統的物理內存不夠用的時候,就需要將物理內存中的一部分空間釋放出來,以供當前運行的程序使用。那些被釋放的空間可能來自一些很長時間沒有什么操作的程序,這些被釋放的空間被臨時保存到swap空間中,等到那些程序要運行時,再從swap中恢復保存的數據到 內存中。這樣,系統總是在物理內存不夠時,才進行swap交換。
也就是說linux 會使用硬盤的一部分做為swap分區,用來進行進程調度--進程是正在運行的程序--把當前不用的進程調成‘等待(standby)‘,甚至‘睡眠(sleep)’,一旦要用,再調成‘活動(active)’,睡眠的進程就躺到SWAP分區睡大覺,把內存空出來讓給‘活動’的進程。
如果內存夠大,那么這個時候應該讓 linux 不必太多的使用swap分區, 可以通過修改swappiness的數值。當swappiness為0的時候表示最大限度使用物理內存,然后才是 swap空間,當swappines為100的時候,則表示積極的使用swap分區,並且把內存上的數據及時的搬運到swap空間里面。
在CentOS、Red Hat、ubuntu等系統中,swappiness的默認值都為60,如果Linux服務器的內存很小,比如說低於4G,那么可以不用更改這個值,因為畢竟考慮到內存不夠用而去借用swap的情況。而相對於很多服務器來說,目前還是建議設置在值為25以下,如果超過了8G內存,而且目前內存使用量還有剩余的話,建議直接將swappiness改成0,這樣可以最大限度的使用物理內存,減少硬盤的負載,同時加快速度。也避免在使用Memcached的時候出現"memcached timeout error because of slow response"這樣的錯誤。
關於swappiness操作相關的命令:
查看swappiness當前設置的值:

修改swappiness的值:

使swappiness值在修改后,重啟不會失效:

在最后一行加上"vm.swappiness=0"