服務器 swap 交換分區制作
作用:‘提升‘ 內存的容量,防止OOM(Out Of Memory)
查看當前的交換分區
# cat /proc/swaps
# free -m
# swapon -s
增加交換分區
可是是分區,LVM,File
file創建:
1、新建一個專門的文件用於swap分區
# dd if=/dev/zero of=/swap_file bs=1M count=4096
注:此文件的大小是count的大小乘以bs大小,上面命令的大小是4GB
2、通過mkswap命令將上面新建出的文件做成swap分區
# mkswap /swap_file
3、啟用交換分區,並使用命令查看內存占用情況
# swapon /swap_file # free -m
4、設置開機自動啟動
# vim /etc/fstab /swap_file swap swap defaults 0 0 或直接輸入: # echo "/data/swap swap swap defaults 0 0" >> /etc/fstab
或者通過uuid掛載
# blkid /swap_file /swap_file: UUID="f9f24d89-4420-4c4e-ae11-7fe6364f08b3" TYPE="swap" # vim /etc/fstab UUID="f9f24d89-4420-4c4e-ae11-7fe6364f08b3" swap swap default 0 0
5、查看內核參數vm.swappiness中的數值是否為0,如果為0則根據實際需要調整成30或者60
# cat /proc/sys/vm/swappiness # sysctl -a | grep swappiness # sysctl -w vm.swappiness=50
這里需要簡單說明下,在Linux系統中,可以通過查看/proc/sys/vm/swappiness內容的值來確定系統對SWAP分區的使用原則。當swappiness內容的值為0時,表示最大限度地使用物理內存,物理內存使用完畢后,才會使用SWAP分區。當swappiness內容的值為100時,表示積極地使用SWAP分區,並且把內存中的數據及時地置換到SWAP分區。注:若想永久修改,則編輯/etc/sysctl.conf文件
我們這里設置的50,就表示當物理內存少於50%時便使用交換分區。
6、關閉swap分區
# swapoff /data/swap # swapoff -a >/dev/null
關於多個交換分區在使用上的優先級
如果你有多於一個交換文件或交換分區,你可以給它們各自分配一個優先級值(0 到 32767)。系統會在使用較低優先級的交換區域前優先使用較高優先級的交換區域。例如,如果你有一個較快的磁盤 (/dev/sda) 和一個較慢的磁盤 (/dev/sdb),給較快的設備分配一個更高的優先級。優先級可以在 fstab 中通過 pri 參數指定:
/dev/sda1 none swap defaults,pri=100 0 0
/dev/sdb2 none swap defaults,pri=10 0 0
或者通過 swapon 的 ?p (或者 ??priority) 參數:
# swapon -p 100 /dev/sda1
如果兩個或更多的區域有同樣的優先級,並且它們都是可用的最高優先級,頁面會按照循環的方式在它們之間分配。