Files
README/b3_ubuntu创建交换内存.md

101 lines
2.0 KiB
Markdown

# ubuntu创建交换内存
## 检查当前配置
```
sudo swapon --show
free -h
```
## 创建交换文件
```
sudo fallocate -l 4G /swapfile
#如果 fallocate 命令有问题则使用dd
#sudo dd if=/dev/zero of=/swapfile bs=1M count=4096 status=progress
```
## 设置权限
交换文件必须只有 root 用户才有读写权限,否则会有安全风险。
```
sudo chmod 600 /swapfile
```
## 格式化为交换空间
```
sudo mkswap /swapfile
```
## 启用交换文件
```
sudo swapon /swapfile
```
运行`sudo swapon --show`或`free -h`查看交换空间是否生效
## 永久生效
```
sudo cp /etc/fstab /etc/fstab.bak # 可选,建议先备份
sudo vi /etc/fstab
```
在最后一行添加
```
/swapfile none swap sw 0 0
```
## 调整 Swappiness 值(可选)
swappiness 参数决定了系统有多频繁地使用交换空间。值范围从 0 到 100。
- 0:尽量不使用交换空间。
- 100:积极使用交换空间。
查看当前值:
```
cat /proc/sys/vm/swappiness
```
临时修改(重启后失效):
```
sudo sysctl vm.swappiness=30
```
永久修改:编辑 /etc/sysctl.conf 文件:
```
sudo vi /etc/sysctl.conf
```
末尾添加
```
vm.swappiness=30
```
保存文件,然后运行以下命令应用更改:
```
sudo sysctl -p
```
## 调整缓存压力(可选)
vfs_cache_pressure 控制内核回收用于缓存目录和 inode 对象的内存的倾向。默认值也是 100。将其设置为较低的值(如 50),会让系统更多地缓存这些信息,可能提升性能。
同样,在`/etc/sysctl.conf`文件中添加:
```
vm.vfs_cache_pressure=50
```
保存后,同样运行`sudo sysctl -p`来应用。
# 修改交换内存
查看原本的交换空间
```
sudo swapon --show
```
停止并删除原本的交换内存
```
sudo swapoff /swapfile
sudo rm /swapfile
```
创建新的文件
```
sudo fallocate -l 6G /swapfile
```
设置权限并格式化
```
sudo chmod 600 /swapfile
sudo mkswap /swapfile
```
启用并确认
```
sudo swapon /swapfile
free -h
```