FreezeJ' Blog

创建与卸载swap分区

2022-12-20

新增swap和卸载swap

一、新增swap分区虚拟内存

1.创建目录

mkdir /data/var/

2.创建硬盘模块大小为16G分配给虚拟内存硬盘

#适合当前剩余内存大于1G以上
dd if=/dev/zero of=/data/var/swap bs=1G count=16

#适合当前剩余内存小于1G以下
dd if=/dev/zero of=/data/var/swap bs=16M count=1024

3.格式化虚拟内存硬盘

mkswap /data/var/swap

4.挂载虚拟内存硬盘

swapon /data/var/swap

5.设置开机启动自动挂载虚拟内存硬盘

echo "/data/var/swap               swap                    swap    defaults        0 0" >>/etc/fstab

二、卸载swap分区虚拟内存

1.swap分区释放内存

swapoff  /data/var/swap

2.删除swap

rm -rf /data/var/swap

3.取消开机启动自动挂载虚拟内存硬盘

vim /etc/fstab
#删除
/data/var/swap               swap                    swap    defaults        0 0

三、swap分区爆了解决办法,释放虚拟内存,重新挂载

1.查看swap使用的进程和内存

for i in $( cd /proc;ls |grep "^[09]"|awk ' $0 >100') ;do awk '/Swap:/{a=a+$2}END{print '"$i"',a/1024"M"}' /proc/$i/smaps 2>/dev/null ; done | sort -k2nr | head -10
23234 207.758M
8604 81.5742M
9790 58.5742M
9594 20.7109M
9593 20.7031M
9592 20.6914M
9589 20.6523M
9595 18.7578M
9596 16.8477M
9591 16.832M

2.查看是什么进程使用的swap空间

ps aux | grep 23234

3.查看swap挂载的空间

swapon -s
Filename                                Type            Size    Used    Priority
/data/var/swap                          file            16777212        652     -1

4.卸载swap分区释放内存

swapoff  /data/var/swap

5.重新挂载swap分区

swapon  /data/var/swap