Ubuntu 设置虚拟内存
虚拟内存(交换空间)可以帮助在物理内存不足时,系统仍然能够正常运行。
检查交换空间大小
检查系统的交换空间:
1 | sudo swapon --show |
如果没有任何输出,说明当前没有启用交换空间。否则,输出如下所示:
1 | NAME TYPE SIZE USED PRIO |
创建交换文件
可以通过创建一个交换文件来增加虚拟内存。以下是创建 16GB 交换文件的步骤。
创建文件
使用dd命令创建文件:
1 | sudo dd if=/dev/zero of=/extraSwapfile bs=1G count=16 |
这将创建一个名为 /extraSwapfile
的文件,大小为 16GB。
设置文件权限
为了安全起见,设置交换文件的权限,确保只有 root 用户可以读写:
1 | sudo chmod 600 /extraSwapfile |
转换格式
使用 mkswap
命令将文件格式化为交换空间:
1 | sudo mkswap /extraSwapfile |
启用
启用刚刚创建的交换文件:
1 | sudo swapon /extraSwapfile |
验证
再次检查交换空间是否已启用:
1 | sudo swapon --show |
可以看到 /extraSwapfile
被列出来。
永久生效
为了让交换文件在系统重启后仍然有效,需要将其添加到 /etc/fstab
文件中。在文末添加:
1 | /extraSwapfile none swap sw 0 0 |
保存并退出即可。
优先级调整(可选)
如果你有多个交换空间,可以通过调整优先级来控制它们的使用顺序。默认情况下,交换文件的优先级为 -2。你可以通过以下命令设置优先级:
1 | sudo swapon --priority 10 /extraSwapfile |
使用以下命令进行验证即可:
1 | free -h |
其中 Swap
行显示了你刚刚设置的 16GB 交换空间:
调整交换性(可选)
交换性(Swappiness)是一个内核参数,用于控制系统使用交换空间的倾向。默认值为 60,范围是 0 到 100。值越高,系统越倾向于使用交换空间。
可以通过以下命令查看当前交换性:
1 | cat /proc/sys/vm/swappiness |
如果想调整交换性,可以编辑 /etc/sysctl.conf 文件:
1 | sudo vi /etc/sysctl.conf |
添加或修改以下行:
1 | vm.swappiness=10 |
保存并退出编辑器,然后应用更改:
1 | sudo sysctl -p |