插件窝 干货文章 linux交换分区是什么

linux交换分区是什么

交换 分区 内存 文件 86    来源:    2025-05-02

Linux交换分区(swap)详解

什么是交换分区

交换分区(Swap)是Linux系统中用于内存扩展的特殊磁盘空间,当物理内存(RAM)不足时,系统会将不活跃的内存页移动到交换分区中,从而释放RAM供其他进程使用。

交换分区的主要作用

  1. 扩展可用内存:当物理内存不足时提供额外的"虚拟内存"
  2. 休眠支持:保存系统休眠时的内存状态
  3. 内存管理:存储不常用的内存页,优化内存使用

交换分区的类型

  1. 交换分区(swap partition):专用的磁盘分区
  2. 交换文件(swap file):文件系统中的特殊文件

查看交换空间

free -h
swapon --show
cat /proc/swaps

创建交换空间

创建交换分区

  1. 使用fdiskgdisk创建新分区
  2. 设置分区类型为"Linux swap"(82)
  3. 格式化:mkswap /dev/sdXn
  4. 启用:swapon /dev/sdXn

创建交换文件

# 创建1GB交换文件
sudo fallocate -l 1G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

永久启用交换空间

将交换分区或文件添加到/etc/fstab

/swapfile none swap sw 0 0
或
/dev/sdXn none swap sw 0 0

交换分区大小建议

  • 传统建议:物理内存的1.5-2倍
  • 现代系统(大内存):
    • 小于2GB RAM:RAM的2倍
    • 2-8GB RAM:等于RAM大小
    • 大于8GB RAM:至少4GB,通常不超过8GB

调整交换倾向(swappiness)

# 查看当前值(0-100)
cat /proc/sys/vm/swappiness

# 临时修改
sudo sysctl vm.swappiness=10

# 永久修改
echo "vm.swappiness=10" >> /etc/sysctl.conf

删除交换空间

# 禁用交换文件/分区
sudo swapoff /swapfile
或
sudo swapoff /dev/sdXn

# 删除条目从/etc/fstab
# 删除交换文件或分区

注意事项

  1. 交换空间位于SSD上可能会影响SSD寿命
  2. 交换空间性能远低于物理内存
  3. 对于服务器,监控交换使用情况很重要
  4. 交换空间不是物理内存的完美替代品

希望这些信息对您有所帮助!如需更详细的指导或有特定问题,请随时询问。