swap分区到底设置成多大才最优?

首先看下Redhat官方的文档中关于swap分区大小设置的建议
因此,一般来说可以按照如下规则设置swap大小:

  • 4G以内的物理内存,SWAP 设置为内存的2倍,不超过4G。
  • 4-8G的物理内存,SWAP 等于内存大小。
  • 8-64G 的物理内存,SWAP 设置为8G。
  • 64-256G物理内存,SWAP 设置为16G。

实际上,系统中交换分区的大小并不取决于物理内存的量,而是取决于系统中内存的负荷,所以在安装系统时要根据具体的业务来设置SWAP的值。

设置SWAP分区

首先查看设备上是否有SWAP分区,如果已有SWAP分区但大小不合适,可以关闭并重新设置。我建议2G、4G云服务器设置4G大小的SWAP分区。命令如下:

#显示内存和缓存
free -h
#关闭SWAP
swapoff -a

显示

               total        used        free      shared  buff/cache   available
Mem:           977Mi       753Mi        65Mi        75Mi       374Mi       223Mi
Swap:             0B          0B          0B

然后用如下命令设置SWAP分区(本案例SWAP分区大小为2G):

#创建swap分区
dd if=/dev/zero of=/var/swapfile bs=1M count=2048
#格式化并启用swap分区
mkswap /var/swapfile
swapon /var/swapfile

创建完毕后再用 free 命令查看是否创建成功:

free -h

设置swap分区自动启动

添加到指令到fstab文件中这样系统引导时会自动启动(手动编辑效果一样,选其一)

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

或者手动编辑/etc/fstab

nano /etc/fstab 
#添加如下内容
/var/swapfile swap swap defaults 0 0