簡介:swap交換空間其實是一個磁盤分區,在安裝操做系統時,默認劃分出物理內存的1~2倍空間用於交換分區,它相似於 Windows 的虛擬內存。系統會把一部分硬盤空間虛擬成內存使用,將系統內非活動內存換頁到 SWAP,以提升系統可用內存。vim
阿里雲ECS服務器的swap功能默認時沒有開啓的,由於swap功能會增長磁盤IO的佔用率,下降磁盤壽命和性能,另外一方面也能夠藉此讓用戶購買更大的內存。啓用swap分區,必定程度上能夠下降物理內存的使用壓力,但若是雲服務器上運行的應用確實須要更多的內存,仍是須要購買物理內存。服務器
啓用swap分區步驟以下:app
一、查看是否啓用swap分區
# free -m
# cat /proc/swaps性能
二、若是未啓用swap分區功能,則新建一個專門的文件用於swap分區阿里雲
# dd if=/dev/zero of=/mnt/swap bs=block_size count=number_of_blockspa
注:block_size、number_of_block 大小能夠自定義,好比 bs=1M count=1024 表明設置 1G 大小 SWAP 分區操作系統
三、設置交換分區文件內存
經過mkswap命令將上面新建出的文件作成swap分區ast
# mkswap /mnt/swap配置
注:mkswap時若是出現以下錯誤,是由於SWAP 文件過小,SWAP 文件至少應該大於 40KB,從新執行上一步驟生成更大的文件便可
mkswap: error: swap area needs to be at least 40 KiB
四、修改內核參數 /proc/sys/vm/swappiness
當 swappiness爲 0 時,表示最大限度的使用物理內存,物理內存使用完畢後,纔會使用 SWAP 分區;
當 swappiness 爲 100 時,表示積極地使用 SWAP 分區,而且把內存中的數據及時地置換到 SWAP 分區。
根據實際須要設置該值便可,以下述方法臨時修改此參數,假設咱們配置爲空閒內存少於 30% 時才使用 SWAP 分區
# echo 30 >/proc/sys/vm/swappiness
若須要永久修改此配置,在系統重啓以後也生效,可修改 /etc/sysctl.conf 文件,增長如下內容
# vim /etc/sysctl.conf
vm.swappiness=30
# sysctl -p
五、啓用此交換分區的交換功能
#swapon /mnt/swap
注:若是在 /etc/rc.local 中有 swapoff -a 須要修改成 swapon -a
六、設置開機時自啓用 SWAP 分區
修改文件 /etc/fstab 中的 SWAP 行,添加一行/mnt/swap swap swap defaults 0 0
# echo "/mnt/swap swap swap defaults 0 0" >> /etc/fstab
七、檢查是否設置成功
# cat /proc/swaps
# free -m
八、關閉swap分區
當系統出現內存不足時,開啓 SWAP 可能會因頻繁換頁操做,致使 IO 性能降低。若是要關閉 SWAP,能夠採用以下方法。
使用命令 swapoff 關閉 SWAP
修改 /etc/fstab 文件,刪除或註釋相關配置,取消 SWAP 的自動掛載#swapoff /mnt/swap
#swapoff -a >/dev/null