linux交换分区是系统中一块用作虚拟内存的磁盘空间,通常被称为swap分区。当系统的物理内存被占满时,内核会把不常使用的内存页移到交换分区中,从而腾出真实内存给更急需的进程使用。

交换分区的作用
交换分区主要有以下几方面作用:
- 缓解物理内存不足导致的进程被杀死问题
- 支持系统休眠,将内存状态写入磁盘
- 提升系统在低内存环境下的稳定性
如何查看当前交换分区
在终端中使用如下命令可以查看交换空间的使用情况:
# 查看交换分区和内存概况 free -h # 查看详细的swap设备信息 swapon --show
用文件方式创建交换分区
如果安装系统时没有划分独立交换分区,可以创建一个交换文件来充当swap。下面以创建2GB交换文件为例:
# 创建大小为2G的文件 sudo fallocate -l 2G /swapfile # 设置仅root可读写 sudo chmod 600 /swapfile # 格式化为交换空间 sudo mkswap /swapfile # 启用交换文件 sudo swapon /swapfile # 开机自动挂载,写入fstab echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
交换分区大小怎么选
过去常建议交换分区为内存的两倍,但现代机器内存较大时可适当降低比例。参考下表:
| 物理内存 | 建议交换空间 |
|---|---|
| 小于2GB | 内存的2倍 |
| 2GB到8GB | 等于内存大小 |
| 大于8GB | 4GB到8GB即可 |
相关内核参数
系统通过swappiness参数控制使用交换空间的倾向,值范围0到100,默认常为60。可用如下方式临时修改:
# 查看当前值 cat /proc/sys/vm/swappiness # 临时设为10,减少swap使用 sudo sysctl vm.swappiness=10
理解linux交换分区是什么,有助于我们在资源受限的服务器上做出更合理的规划,也能在排查卡顿和内存问题时提供方向。