環境說明:
系統:Centos 7
首先查看當前的內存和swap 空間大小
默認單位爲k, -m 單位爲M
free -m
查看swap信息,包括文件和分區的詳細信息
swapon -s
# 或者
cat /proc/swaps
如果沒有虛擬內存,我們就需要手動添加交換分區。
注意,OPENVZ架構的VPS是不支持手動添加交換分區的。
添加交換空間有兩種選擇:添加一個交換分區或添加一個交換文件。推薦你添加一個交換分區;不過,若你沒有
多少空閒空間可用, 則添加交換文件。
查看vps的虛擬架構
現在市面上的vps虛擬技術有許多種,比如Openvz、Xen、VMware vSphere、Hyper-V、KVM及Xen的HVM與PV
等,在Xen中pv是半虛擬化,hvm是全虛擬化,pv只能用於linux內核的系統,hvm可以虛擬所有常見操作系統
(linux+windows),理論效率比pv略低,另外hvm需要cpu虛擬化指令支持,pv無此要求,而Openvz是一個類似於
linux-VServer的操作系級全虛擬化解決方案。
安裝依賴
Centos系統
yum install virt-what
Debian/Ubuntu系統
apt-get install virt-what
查看架構
virt-what
增加swap交換文件
使用dd命令創建一個swap交換文件
# 建立一個/home/swap的分區文件,大小爲2G。
dd if=/dev/zero of=/home/swap bs=1024 count=2048k
製作爲swap格式文件
mkswap /home/swap
再用swapon命令把這個文件分區掛載swap分區
swapon /home/swap
我們用free -m命令看一下,發現已經有交換分區了。
但是重啓系統後,swap分區又變成0了。
爲防止重啓後swap分區變成0,要修改/etc/fstab文件
vi /etc/fstab
# 或者
vim /etc/fstab
# 在文件末尾(最後一行)加上 這樣就算重啓系統,swap分區還是有值。
/home/swap swap swap defaults 0 0
調整 swappiness
swappiness的值的大小對如何使用swap分區是有着很大的聯繫的。swappiness=0的時候表示最大限度使用物理內存,然後纔是 swap空間,swappiness=100的時候表示積極的使用swap分區,並且把內存上的數據及時的搬運到swap空間裏面。一般linux的默認設置爲60,也就是說內存在使用到100-60=40%的時候,就開始出現有交換分區的使用。
# 查看swappiness的值
cat /proc/sys/vm/swappiness
# 臨時修改
sysctl vm.swappiness=10
# 永久修改 添加vm.swappiness=60
vim /etc/sysctl.conf
# 激活設置
sysctl -p
刪除swap交換文件
刪除操作是基於上述的添加方式,可根據實際情況修改
先停止swap分區
/sbin/swapoff /home/swap
刪除swap分區文件
rm -rf /home/swap
刪除自動掛載配置命令
vim /etc/fstab # 刪除 /home/swap swap swap default 0 0
使用分區來做SWAP(虛擬內存)
使用fdisk來創建交換分區( /dev/sdb2 是創建的交換分區)
fdisk /dev/sdb2
使用 mkswap 命令來設置交換分區:
mkswap /dev/sdb2
啓用交換分區
swapon /dev/sdb2
寫入/etc/fstab,以便在引導時啓用
vi /etc/fstab
# 或者
vim /etc/fstab
/dev/sdb2 swap swap defaults 0 0
刪除交換分區
刪除操作是基於上述的添加方式,可根據實際情況修改
先停止swap分區
/sbin/swapoff /dev/sdb2
刪除自動掛載配置命令
vi /etc/fstab
# 或者
vim /etc/fstab
# 刪除 /dev/sdb2 swap swap defaults 0 0