CentOS的如何手動添加/刪除虛擬內存SWAP交換文件&分區?
Swap分區是什麼? SWAP即交換區,SWAP空間的作用是,當Linux系統的物理內存不足時,便將物理內存部分空間釋放,用於補充物理內存不足的情況,以讓當前在運行的軟件程序使用。
使用Swap交換分區的好處
SWAP的優化設置調整,對於Web服務器的性能應用非常重要,若物理內存不足,可以通過虛擬內存SWAP分區的的設置,有效節約LINUX系統升級的開支。
Swap分區大小應該設置多少才對?
根據實際系統內存的大小、所用的軟件,來決定設置SWAP交換分區的大小。
CentOS、RHEL6的建議如下,請根據具體情形做合適的優化調整:
- 4GB of RAM requires a minimum of 2GB of swap space 4GB以下內存建議2GB以上Swap空間
- 4GB to 16GB RAM requires a minimum of 4GB of swap space 4GB-16GB內存建議4GB以上Swap空間
- 16GB to 64GB of RAM requires a minimum of 8GB of swap space 16GB-64GB內存建議8GB以上Swap空間
- 64GB to 256GB of RAM requires a minimum of 16GB of swap space 64GB-256GB內存建議16GB以上Swap空間
查看當前的內存和swap 空間大小(默認單位為k, -m 單位為M):
free -m
顯示結果如下(示例):
total used free shared buffers cached
電話:498 347 151 0 101 137
-/+ buffers/cache: 108 390
交換:0 0 0
Swap為0表示沒有,就要手動添加SWAP交換分區。
(注意事項:OPENVZ架構的VPS,不支持手動添加SWAP交換分區)
添加SWAP交換空間有2種:
- 1、添加1個SWAP交換分區。
- 2、添加1個SWAP交換文件。
推薦添加SWAP交換分區;要是所剩空閒空間不多,就添加交換文件。
查看SWAP信息(包括SWAP交換文件和分區的詳細信息):
swapon -s
有人
cat /proc/swaps
(若無顯示SWAP數值,表示尚未添加SWAP空間)
下面是如何創建SWAP文件的示例:
1、創建1GB的swap
dd if=/dev/zero of=/home/swap bs=1k count=1024k
mkswap /swapfile
swapon /swapfile
echo "/home/swap swap swap default 0 0" | sudo tee -a /etc/fstab
sudo sysctl -w vm.swappiness=10
echo vm.swappiness = 10 | sudo tee -a /etc/sysctl.conf
2、創建2GB的swap
dd if=/dev/zero of=/home/swap bs=1k count=2048k
mkswap /home/swap
swapon /home/swap
echo "/home/swap swap swap default 0 0" | sudo tee -a /etc/fstab
sudo sysctl -w vm.swappiness=10
echo vm.swappiness = 10 | sudo tee -a /etc/sysctl.conf
(完)
下面是另外詳細參考說明:
1、使用dd命令創建一個swap交換文件
1G內存
dd if=/dev/zero of=/home/swap bs=1024 count=1024000
2G內存:
dd if=/dev/zero of=/home/swap bs=1k count=2048k
這樣就建立一個/home/swap的文件,1024000大小為1G,2048k為2G。
2、製作為swap格式文件:
mkswap /home/swap
3、再用swapon命令把這個文件分區掛載swap分區
/sbin/swapon /home/swap
我們用free -m命令看一下,發現已經有交換文件了。
free -m
但是重啟系統後,swap交換文件又變成0了。
4、為防止重啟後swap交換文件變成0,要修改/etc/fstab文件
在/etc/fstab 文件末尾(最後一行)加上:
/home/swap swap swap default 0 0
(這樣就算重啟系統,swap交換文件還是有值)
或直接使用以下命令,添加重啟自動掛載配置命令:
echo "/home/swap swap swap default 0 0
" | sudo tee -a /etc/fstab
VPS在什麼情況下才用到SWAP交換的空間?
也不是等所有的物理內存都消耗完畢之後,才去使用SWAP交換的空間,而是由swappiness 的參數值來決定。
[root@ ~]#cat /proc/sys/vm/swappiness
60
(該值默認值是60)
- swappiness=0表示最大限度使用物理內存,然後才是SWAP交換的空間,
- swappiness=100表示積極的使用SWAP交換的空間,並且把內存上的數據及時的搬運到swap空間裡面。
怎樣設置swappiness參數?
臨時修改:
[root@ ~]#sysctl vm.swappiness=10
虛擬機交換性 = 10
[root@ ~]#
cat /proc/sys/vm/swappiness
10
(此臨時修改已生效,但若重啟系統,會變回默認值60)
永久修改:
在/etc/sysctl.conf文件裡添加如下參數:
vm.swappiness=10
(保存,重啟後便生效)
或直接輸入命令:
echo vm.swappiness = 10 | sudo tee -a /etc/sysctl.conf
刪除SWAP交換文件
1、先停止swap分區
/sbin/swapoff /home/swap
2、刪除swap分區文件
rm -rf /home/swap
3、刪除自動掛載配置命令
vi /etc/fstab
這行刪除:
/home/swap swap swap default 0 0
(這樣就能把手動增加的交換文件刪除了)
注意事項:
- 1、只能使用root用戶進行增加或刪除swap的操作。
- 2、安裝VPS系統時所分配的swap分區好像無法刪除。
- 3、swap分區一般為內存的2倍。
希望陳溈亮博客( https://www.chenweiliang.com/ ) 分享的《CentOS如何手動添加/刪除虛擬內存SWAP交換文件&分區? 》,對您有幫助。
歡迎分享本文鏈接:https://www.chenweiliang.com/cwl-158.html
歡迎加入陳溈亮博客的Telegram 頻道,獲取最新更新!
📚 這份指南蘊含價值巨大,🌟難逢的機遇,切勿錯失良機! ⏰⌛💨
喜歡就分享和按贊!
您的分享和按贊,是我們持續的動力!