Debian 系统设置虚拟内存(Swap)完全指南
在资源有限的 Debian 服务器上,合理配置虚拟内存(Swap)可显著提升系统稳定性。本文详细介绍如何设置和优化虚拟内存。
什么是虚拟内存(Swap)?
虚拟内存是操作系统使用硬盘空间扩展物理内存的机制。当物理内存不足时,系统将不常用的内存页面临时存储到虚拟内存中。
创建交换文件(推荐方法)
# 1. 创建一个交换文件(1GB大小)
sudo fallocate -l 1G /swapfile
# 如果 fallocate 命令不可用,可以使用 dd 命令:
# sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576
# 2. 设置安全权限
sudo chmod 600 /swapfile
# 3. 将文件格式化为交换空间
sudo mkswap /swapfile
# 4. 启用交换文件
sudo swapon /swapfile
# 5. 验证交换空间是否已启用
sudo swapon --show
free -h
# 6. 设置开机自动启用(编辑 /etc/fstab 文件)
echo '/swapfile swap swap defaults 0 0' | sudo tee -a /etc/fstab
优化交换空间使用
调整 Swappiness 参数
# 查看当前设置
cat /proc/sys/vm/swappiness
# 临时修改(值越低越不倾向使用交换空间)
sudo sysctl vm.swappiness=10
# 永久修改
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
推荐的 Swappiness 值
- 服务器环境:10-20
- 桌面环境:30-60
- 内存极小的系统:60-100
交换空间大小建议
系统内存 | 推荐交换空间大小 |
---|---|
< 1GB | 内存的 2 倍 |
1-2GB | 等同于内存大小 |
2-8GB | 内存的一半到等同大小 |
> 8GB | 至少 4GB |
对于 557MB 内存服务器,建议设置 1GB 到 1.5GB 的交换空间。
监控交换空间使用情况
# 查看交换空间使用情况
free -h
# 详细查看交换统计信息
vmstat 1 5
# 查看哪些进程在使用交换空间
for file in /proc/*/status ; do awk '/VmSwap|Name/{printf $2 " " $3}END{ print ""}' $file; done | sort -k 2 -n -r | head -10