阿里雲雲主機swap功能設置實戰案例
阿里雲提供的雲服務器(Elastic Compute Service,簡稱 ECS),是雲主機的一種,當前采用的虛擬化驅動是Xen(這一點可以通過bios vendor和virtual type可以看出)。
默認情況下,阿里雲雲主機的swap功能是沒有啟用的,原因當然是通過取消swap功能可以降低磁盤IO的占用率來讓用戶購買更多的內存、提高磁盤壽命和性能。
交換空間通常是一個磁盤分區(此分區在安裝操作系統時,系統通常會默認划分出一段空間用於交換分區,默認將交換空間的大小設定為內存的1倍到2倍),也可以是一個文件。
阿里當前的做法是:
1.不創建swap分區,由鏡像決定
2.將vm.swappiness設定為0,即永不使用swap分區
啟用swap分區,確實可以降低內存的使用壓力,但並不是長久之計,如果雲主機上運行的應用確實需要較高的內存,建議還是購買更多的內存。
如何啟用swap分區?
步驟如下:
1.查看當前系統中是否已經啟用swap分區(有三種命令)
# top
# free -m
# cat /proc/swaps
Filename Type Size Used Priority
2.如果沒有啟用swap分區功能,則新建一個專門的文件用於swap分區,創建時間比較長需要耐心等待。
不能使用/data/swap,會報錯
# dd if=/dev/zero of=/data/swap bs=1G count=4
dd: opening `/data/swap': No such file or directory
# dd if=/dev/zero of=/mnt/swap bs=1G count=4
注:此文件的大小是count的大小乘以bs大小,上面命令的大小是4GB
[root@iZwz96l7gxttha3j1hk494Z ~]# dd if=/dev/zero of=/mnt/swap bs=1G count=4
4+0 records in
4+0 records out
4294967296 bytes (4.3 GB) copied, 71.8305 s, 59.8 MB/s
3.設置交換分區文件:通過mkswap命令將上面新建出的文件做成swap分區
# mkswap /mnt/swap
4.修改內核參數vm.swappiness
查看內核參數vm.swappiness中的數值是否為0,如果為0則根據實際需要調整成30或者60
在 Linux 系統中,可以通過查看 /proc/sys/vm/swappiness 內容的值來確定系統對 SWAP 分區的使用原則。
當 swappiness 內容的值為 0 時,表示最大限度地使用物理內存,物理內存使用完畢后,才會使用 SWAP 分區。
當 swappiness 內容的值為 100 時,表示積極地使用 SWAP 分區,並且把內存中的數據及時地置換到 SWAP 分區。
查看修改前為 0,需要在物理內存使用完畢后才會使用 SWAP 分區
# cat /proc/sys/vm/swappiness
0
# sysctl -a | grep swappiness
vm.swappiness = 0
# sysctl -w vm.swappiness=30
vm.swappiness = 30
注:若想永久修改,則編輯/etc/sysctl.conf文件
# vim /etc/sysctl.conf
vm.swappiness=30
# sysctl -p
5.啟用此交換分區的交換功能
#swapon /mnt/swap
注:如果在 /etc/rc.local 中有 swapoff -a 需要修改為 swapon -a
# cat /etc/rc.local 查看是否存在
6.設置開機時自啟用 SWAP 分區:
需要修改文件 /etc/fstab 中的 SWAP 行,添加
/mnt/swap swap swap defaults 0 0
# echo "/mnt/swap swap swap defaults 0 0" >> /etc/fstab
注:/mnt/swap 路徑可以修改,可以根據創建的 SWAP 文件具體路徑來配置。
7.再次用命令查看是否設置成功
# cat /proc/swaps
Filename Type Size Used Priority
/mnt/swap file 4194300 0 -1
# free -m
total used free shared buffers cached
Mem: 3832 2711 1120 0 124 1826
-/+ buffers/cache: 760 3072
Swap: 4095 0 4095
--------------------
如何關閉swap分區?
當系統出現內存不足時,開啟 SWAP 可能會因頻繁換頁操作,導致 IO 性能下降。如果要關閉 SWAP,可以采用如下方法。
使用命令 swapoff 關閉 SWAP
swapoff /mnt/swap
修改 /etc/fstab 文件,刪除或注釋相關配置,取消 SWAP 的自動掛載:
swapoff -a >/dev/null
通過 free -m 確認 SWAP 已經關閉。
swappiness 參數調整:
可以使用下述方法臨時修改此參數,這里配置為 0%:
echo 0 >/proc/sys/vm/swappiness
若需要永久修改此配置,在系統重啟之后也生效的話,可以修改 /etc/sysctl.conf 文件,並增加以下內容:
# vim /etc/sysctl.conf
vm.swappiness=0
# sysctl -p
------------------------------
本人微信公眾帳號: 心禪道(xinchandao)
本人微信公眾帳號:雙色球預測合買(ssqyuce)