在 CentOS 上制作 Swap(交换区)通常有 两种方式:
下面重点介绍 swap 文件方式(最常用),然后简单说明 swap 分区方式。
free -h
swapon -s
如果没有任何输出,说明当前没有 swap。
sudo dd if=/dev/zero of=/swapfile bs=1M count=4096
或(更快):
sudo fallocate -l 4G /swapfile
如果
fallocate失败(某些文件系统不支持),用dd
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
验证:
free -h
编辑 /etc/fstab:
sudo vi /etc/fstab
添加一行:
/swapfile swap swap defaults 0 0
保存后验证:
sudo mount -a
cat /proc/sys/vm/swappiness
sudo sysctl vm.swappiness=10
sudo vi /etc/sysctl.conf
添加:
vm.swappiness=10
值越小,系统越倾向于使用物理内存
sudo swapoff /swapfile
sudo rm -f /swapfile
并从 /etc/fstab 中删除对应行。
适用于 新装系统或磁盘有空闲分区:
fdisk /dev/sdb # 创建分区,类型设为 82
mkswap /dev/sdb1
swapon /dev/sdb1
/etc/fstab 添加:
/dev/sdb1 swap swap defaults 0 0
| 内存大小 | 推荐 swap |
|---|---|
| ≤ 2G | 2 × 内存 |
| 2G–8G | 等于内存 |
| 8G–64G | 0.5–1 × 内存 |
| > 64G | 通常不需要 |
如果你愿意,可以告诉我:
我可以给你一套 最适合你服务器的 swap 配置方案。