Linux SWAP 交换分区
一、SWAP 概述
當系統的物理內存不夠用的時候,就需要將物理內存中的一部分空間釋放出來,以供當前運行的程序使用。那些被釋放的空間可能來自一些很長時間沒有什么操作的程序,這些被釋放的空間被臨時保存到Swap空間中,等到那些程序要運行時,再從Swap中恢復保存的數據到內存中。這樣,系統總是在物理內存不夠時,才進行Swap交換。
這個是SWAP 交換分區的作用。 實際上,我們更關注的應該是SWAP分區的大小問題。 設置多大才是最優的。
一般來說可以按照如下規則設置swap大小:
4G以內的物理內存,SWAP 設置為內存的2倍。4-8G的物理內存,SWAP 等于內存大小。8-64G 的物理內存,SWAP 設置為8G。64-256G物理內存,SWAP 設置為16G。實際上,系統中交換分區的大小并不取決于物理內存的量,而是取決于系統中內存的負荷,所以在安裝系統時要根據具體的業務來設置SWAP的值。
二、SWAP 分區
查看系統RAM大小
free -mtotal used free shared buff/cache available Mem: 1839 201 602 0 1035 1457 Swap: 0 0 0
格式化分區文件
mkswap /home/swap根據Oracle官方建議(見下方)創建swap
dd if=/dev/zero of=/home/swap bs=1M count=2048if表示infile, of表示outfile, bs=1M代表增加的模塊大小,count=2048代表是2048個模塊,也就是2G空間大小count的計算公式: count = size * bs (size以MB為單位)
這樣就創建了一個/home/swap的分區文件,大小為2G
用swapon命令激活swap,立即啟用交換分區文件
swapon /home/swap如果需要關閉swap分區則執行
swapoff /home/swap此時用free -m查看一下,可以看出swap擴大了
為了使操作系統在重啟后swap自動掛載,要修改/etc/fstab文件
vi /etc/fstab 在文件末尾加上 /home/swap swap swap default 0 0這樣就算重啟系統,swap分區也不用手動掛載了
三、系統在什么情況下才會使用SWAP?
實際上,并不是等所有的物理內存都消耗完畢之后,才去使用swap的空間,什么時候使用是由swappiness 參數值控制。
cat /proc/sys/vm/swappiness60 # 該值默認值是60.swappiness=0的時候表示最大限度使用物理內存,然后才是 swap空間,
swappiness=100的時候表示積極的使用swap分區,并且把內存上的數據及時的搬運到swap空間里面。
現在服務器的內存動不動就是上百G,所以我們可以把這個參數值設置的低一些,讓操作系統盡可能的使用物理內存,降低系統對swap的使用,從而提高系統的性能。
四、修改swappiness參數
--臨時性修改:
sysctl vm.swappiness=10 # vm.swappiness = 10cat /proc/sys/vm/swappiness # 10
這里我們的修改已經生效,但是如果我們重啟了系統,又會變成60.
--永久修改:
在/etc/sysctl.conf 文件里添加如下參數:
vm.swappiness=10或者:
echo 'vm.swappiness=10' >>/etc/sysctl.conf保存,重啟,就生效了。
?
?
參考:
https://www.jianshu.com/p/5686ea5a4697
https://blog.csdn.net/tianlesoftware/article/details/8741873
?
轉載于:https://www.cnblogs.com/clbao/p/11199608.html
總結
以上是生活随笔為你收集整理的Linux SWAP 交换分区的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用SqlBulkCopy批量安插数据时提
- 下一篇: Linux——自定义服务命令