SWAP 簡介
Linux 中的 SWAP(交換分區(qū))胀瞪,類似于 Windows 的虛擬內存金矛。系統(tǒng)會把一部分硬盤空間虛擬成內存使用毙玻,將系統(tǒng)內非活動內存換頁到 SWAP,以提高系統(tǒng)可用內存速和。
注:如果您使用普通硬盤歹垫,不建議使用swap分區(qū)。如果是高效硬盤或SSD硬盤健芭,可以根據(jù)實際情況使用swap分區(qū)县钥。
開啟 SWAP
1秀姐、創(chuàng)建用于交換分區(qū)的文件:
dd if=/dev/zero of=/mnt/swap bs=block_size count=number_of_block
注:block_size慈迈、number_of_block 大小可以自定義,比如 bs=1M count=1024 代表設置 1G 大小 SWAP 分區(qū)省有。
2痒留、設置交換分區(qū)文件:
mkswap /mnt/swap
3、立即啟用交換分區(qū)文件
swapon /mnt/swap
注:如果在 /etc/rc.local 中有 swapoff -a 需要修改為 swapon -a
4蠢沿、設置開機時自啟用 SWAP 分區(qū):
需要修改文件 /etc/fstab 中的 SWAP 行伸头,添加
/mnt/swap swap swap defaults 0 0
注:/mnt/swap 路徑可以修改,可以根據(jù)創(chuàng)建的 SWAP 文件具體路徑來配置舷蟀。
5恤磷、修改 swpapiness 參數(shù)
在 Linux 系統(tǒng)中面哼,可以通過查看 /proc/sys/vm/swappiness 內容的值來確定系統(tǒng)對 SWAP 分區(qū)的使用原則。當 swappiness 內容的值為 0 時扫步,表示最大限度地使用物理內存魔策,物理內存使用完畢后,才會使用 SWAP 分區(qū)河胎。當 swappiness 內容的值為 100 時闯袒,表示積極地使用 SWAP 分區(qū),并且把內存中的數(shù)據(jù)及時地置換到 SWAP 分區(qū)游岳。
查看修改前為 0政敢,需要在物理內存使用完畢后才會使用 SWAP 分區(qū):
echo 10 >/proc/sys/vm/swappiness
若需要永久修改此配置,在系統(tǒng)重啟之后也生效的話胚迫,可以修改 /etc/sysctl.conf 文件喷户,并增加以下內容:
# vim /etc/sysctl.conf
vm.swappiness=10
# sysctl -p
關閉 SWAP
當系統(tǒng)出現(xiàn)內存不足時,開啟 SWAP 可能會因頻繁換頁操作访锻,導致 IO 性能下降摩骨。如果要關閉 SWAP,可以采用如下方法朗若。
1恼五、free -m 查詢 SWAP 分區(qū)設置:
2、使用命令 swapoff 關閉 SWAP哭懈,比如:
swapoff /mnt/swap
3灾馒、修改 /etc/fstab 文件,刪除或注釋相關配置遣总,取消 SWAP 的自動掛載:
4睬罗、 通過 free -m 確認 SWAP 已經(jīng)關閉。
5旭斥、 swappiness 參數(shù)調整:
可以使用下述方法臨時修改此參數(shù)容达,這里配置為 0%:
echo 0 >/proc/sys/vm/swappiness
若需要永久修改此配置,在系統(tǒng)重啟之后也生效的話垂券,可以修改 /etc/sysctl.conf 文件花盐,并增加以下內容:
# vim /etc/sysctl.conf
vm.swappiness=0
# sysctl -p
FAQ:
Centos 使用 mkswap 格式化文件時報錯解決?
問題現(xiàn)象
使用 mkswap 創(chuàng)建 SWAP 時出現(xiàn)類似如下報錯信息:
mkswap: error: swap area needs to be at least 40 KiB
問題原因
指定的 SWAP 文件太小菇爪,SWAP 文件至少應該大于 40KB算芯。
解決方法
重新生成更大的文件格式化為 SWAP 即可。