Swap空间
Swap 文件或 Swap 分区是在物理内存(RAM)不足时的一个补充存储区域,它允许操作系统将不活跃的内存页面移到磁盘上,从而释放物理内存用于其他活动进程。适合对不常用的小机器进行内存扩容
# 开启Swap
# 创建 Swap 文件
sudo fallocate -l 4G /swapfile
# 设置文件权限
sudo chmod 600 /swapfile
# 设置 Swap 区域
sudo mkswap /swapfile
# 启用 Swap 区域
sudo swapon /swapfile
# . 编辑 FSTAB 文件
# 修改 /etc/fstab 文件,确保在重启后自动挂载
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
# 查看Swap信息
sudo swapon --show
# 等效于
swapon -s
显示内存的使用情况,包括物理内存和 Swap 的使用情况
free -h
查看 /proc/swaps
# 包含了当前启用的所有 Swap 区域的信息
cat /proc/swaps
# 影响 Swap 使用的参数:vm.swappiness
Linux 内核参数 vm.swappiness 影响 Swap 的使用频率:
- 值范围是 0 到 100,默认值通常是 60。
- 值越高,系统越倾向于使用 Swap;值越低,系统更倾向于优先使用物理内存,尽可能少用 Swap。
可以用以下命令查看:
cat /proc/sys/vm/swappiness
用于临时修改:
sudo sysctl vm.swappiness=10
永久生效
sudo nano /etc/sysctl.conf
新增vm.swappiness=10
应用设置
sudo sysctl -p
# 手动释放
Swap 是动态使用的,系统会自动管理
当系统内存紧张时,会把部分内存数据移到 Swap,这样进程可以继续正常运行。 当系统物理内存变得空闲(比如进程释放了内存,或者系统负载降低),Linux 会自动将 Swap 中的数据页面换回到物理内存中,然后释放对应的 Swap 空间。
换句话说,Swap 空间的数据并不是永久占用的,Linux 内核会根据当前内存压力和系统需求动态地将 Swap 空间“清理”或重新利用。这个过程对用户是透明的。
不需要手动“释放”Swap,内核会自动管理 你一般不用手动释放 Swap。Linux 内核有一套复杂的内存管理机制,会根据系统状况自动调整 Swap 和物理内存的使用比例。
不过,如果你确实需要手动释放 Swap(比如你刚关闭了大量的进程,想立刻把 Swap 释放),也可以用下面的命令:
#关闭所有 Swap,系统会把 Swap 页换回物理内存(如果内存不足,这可能导致系统变慢甚至卡死)。
sudo swapoff -a
或者
#重新启用所有 Swap
sudo swapon -a
上次更新: 2025/04/25, 10:46:05