REC
Linux系统中添加虚拟内存的方法
潼语喧声

Linux系统中添加虚拟内存的方法

潼语
3月27日发布 /正在检测是否收录...
温馨提示:
本文最后更新于2025年03月27日,已超过20天没有更新,若内容或图片失效,请留言反馈。

此文章将使用Ubuntu系统讲解,其他版本的linux系统操作方法大致相同

步骤 1: 检查现有的交换空间

首先,你需要检查当前系统是否已经配置了交换空间以及其大小。你可以通过以下命令来查看:

sudo swapon --show

或者使用 free 命令来查看更详细的内存和交换空间使用情况:

free -h

步骤 2: 创建一个交换文件

如果你需要增加额外的交换空间,可以通过创建一个新的交换文件来实现。下面的例子展示了如何创建一个大小为2GB的交换文件:

sudo fallocate -l 2G /swapfile

如果 fallocate 不可用,也可以使用 dd 命令:

sudo dd if=/dev/zero of=/swapfile bs=1G count=2

步骤 3: 设置正确的权限

确保交换文件只能被root访问是非常重要的,否则可能会带来安全风险:

sudo chmod 600 /swapfile

步骤 4: 设置交换文件

接下来,设置并激活交换文件:

sudo mkswap /swapfile
sudo swapon /swapfile

现在,这个文件已经被设置为交换空间,并立即生效。

步骤 5: 确认新交换空间

再次运行 sudo swapon --show 或者 free -h 来确认新的交换空间已经生效。

步骤 6: 使更改永久化

为了让这些更改在重启后仍然有效,你需要将这条信息添加到 /etc/fstab 文件中。打开 /etc/fstab 文件:

sudo nano /etc/fstab

并在文件末尾添加如下一行:

/swapfile none swap sw 0 0

保存并关闭文件。现在,你的Ubuntu系统应该已经成功增加了虚拟内存。

注意1: 当你创建的虚拟内存过大的时,可以将块大小设置为1MB(1M),然后相应地计算出需要的块数:
sudo dd if=/dev/zero of=/swapfile bs=1M count=8192

在这个命令中:

if=/dev/zero 指定输入文件为 /dev/zero,它是一个特殊的文件,提供无限的空字符。
of=/swapfile 是输出文件的位置和名称。
bs=1M 设置块大小为1MB。
count=8192 表示要写入8192个块,每个块大小为1MB,总共就是8GB。
这种方法降低了单次内存分配的需求,从而避免了上述错误。完成这一步之后,你可以按照之前的步骤设置交换文件的权限、将其设置为交换空间并激活它。

注意2:调整系统交换参数设置.

有时即使启用了交换空间,如果系统的交换倾向参数(swappiness)设置得过低,系统也可能不会积极地使用交换空间。你可以通过以下命令查看当前的swappiness值:

cat /proc/sys/vm/swappiness

默认值通常是60。如果这个值非常低(例如接近0),则意味着系统更倾向于保留物理内存而不是使用交换空间。你可以临时调整这个值来测试效果:

sudo sysctl vm.swappiness=60

这个数值最大为100
要永久更改此设置,可以在/etc/sysctl.conf文件中添加一行:

vm.swappiness = 60

保存并退出,然后执行以下命令使更改立即生效:

sudo sysctl -p
喜欢就支持一下吧
点赞 0 分享 收藏
评论 抢沙发
取消 登录评论