ubuntu内存不足,用Swap扩展增加虚拟内存

本文介绍了如何在Linux系统中增大Swap分区以增加虚拟内存,包括查看内存使用情况、确认Swap空间、创建和扩展Swap文件、修改权限、添加到fstab以实现开机自挂载以及检查和修改文件所有权。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Linux增大Swap分区,可以增加虚拟内存,以解决电脑卡机,内存不足等问题

top可以查看cpu的使用情况

lscpu可以查看本机配置的cpu硬件情况

  • 查看内存使用情况 free -h
    (下面显示"交换"或者Swap等字样说明系统已经启动了Swap)
dx@dx-UX330:~$ free -h

               total        used        free      shared  buff/cache   available
内存:      7.6Gi       5.5Gi       222Mi       1.2Gi       1.9Gi       620Mi
交换:      2.0Gi       2.0Gi       0.0Ki


  • 查看内存剩余情况df -h
dx@dx-UX330:~$ df -h
文件系统        大小  已用  可用 已用% 挂载点
tmpfs           782M  1.9M  780M    1% /run
/dev/sda6        58G   41G   15G   74% /
tmpfs           3.9G  2.4M  3.9G    1% /dev/shm
tmpfs           5.0M  4.0K  5.0M    1% /run/lock
efivarfs        128K   52K   72K   42% /sys/firmware/efi/efivars
tmpfs           3.9G     0  3.9G    0% /run/qemu
/dev/sda1       256M   36M  221M   14% /boot/efi
tmpfs           782M  1.7M  781M    1% /run/user/1000
/dev/sda4       2.1G   13M  2.1G    1% /media/dx/D卷
/dev/sda3       177G  167G  9.8G   95% /media/dx/OS

由上面观察,/dev/sda6 还有一定空间可用,可作为扩展Swap的备选

  • 查看Swap空间大小
root@dx-UX330:/home/dx# sudo swapon --show
NAME      TYPE SIZE USED PRIO
/swapfile file   2G   2G   -2

观察上面可以知道,目前挂载的swap空间是在一个叫做/swapfile的文件上的,为2G

如果想对现有的Swap空间进行扩展,可以直接新建一个swap文件(当然,不能再叫做/swapfile了,可以换个名字,比如叫做/swap),这是为了为避免在设置时候发生名字冲突。
我们新起的这个文件就叫做/swap(再次提醒,之前设置swap空间的文件叫做/swapfile,新建的叫做/swap)

现在来修改这个新建的/swap的大小,进入系统根目录:


cd /

使用dd命令增加/swap文件的大小。例如,如果想将swap空间扩展到8G,可以执行:


sudo dd if=/dev/zero of=/swap bs=1M count=8192

这里的bs=1M count=8192表示每块大小为1M,共8192块,即总共8G。
当然你也可以让bs=1M count=16384表示每块大小为1M,共16384块,即总共16G。

现在来处理旧的/swapfile文件,查看他是否还在运行
sudo mkswap /swapfile
如果旧的文件正在被用作Swap空间,你需要首先使用swapoff命令来停用它:
sudo swapoff /swapfile

然后,你才可以使用mkswap命令来设置新的Swap空间:sudo mkswap /swap
最后使用swapon命令来启用Swap空间:sudo swapon /swap

注意:当你尝试使用下一步的 sudo swapon /swap 命令启用Swap文件时,系统可能会警告你关于不安全的权限设置。错误消息 swapon: /swap: insecure permissions 0644, 0600 suggested 指出Swap文件的当前权限是0644,这意味着文件所有者可以读写该文件,而其他用户只能读取它。出于安全考虑,Swap文件通常应该只有root用户才能读写,因此建议的权限是0600。要解决这个问题,你可以使用 chmod 命令将Swap文件的权限更改为0600:


sudo chmod 0600 /swap

激活新的Swap空间大小:


sudo mkswap /swap  

sudo swapon /swap

最后,使用free -m命令验证Swap空间是否已成功扩展。

  • 设置为永久Swap

如果你希望系统在每次启动时都自动加载新的Swap空间,需要将Swap文件添加到/etc/fstab文件中。可以使用文本编辑器打开该文件,并在文件末尾添加类似下面的行:


/swapfile swap swap defaults 0 0

保存并关闭fstab文件。

原本的文件
在这里插入图片描述

修改后的文件
在这里插入图片描述

电脑重启后,使用命令sudo swapon --show 观察新的Swap是否已经被挂载上

dx@dx-UX330:~$ sudo swapon --show
[sudo] dx 的密码: 
NAME      TYPE SIZE USED PRIO
/swapfile file   2G 1.8G   -2
/swap     file   8G   0B   -3
  • Q:如何查看Swap文件/swapfile的所有者是谁(应该为root用户)
    ls -l /swapfile
    输出应该是类似这样的
    -rw------- 1 root root <文件大小> <日期时间> /swapfile

  • Q:如何修改文件的所有者?
    你可以使用chown命令来更改文件/swapfile的所有者,如下所示:
    sudo chown root:root /swapfile

### 回答1: 在Ubuntu中,设置swap虚拟内存)有几种方法可以选择。 第一种方法是通过使用GParted分区工具创建一个swap分区。首先,打开终端并输入sudo apt-get install gparted来安装GParted。安装完成后,运行GParted并选择要创建swap分区的硬盘。右键单击硬盘并选择"New Partition"。在弹出的对话框中选择分区类型为"linux-swap",然后设置分区大小(通常建议设置与计算机RAM大小相同或稍大),最后点击"Add"按钮来创建swap分区。创建完成后,右键单击swap分区并选择"swapon"。 第二种方法是通过使用命令行来设置swap。首先,打开终端并输入sudo fallocate -l [size] /swapfile来创建一个指定大小的swap文件,将[size]替换为要创建的swap文件的大小(例如,2G)。然后,运行sudo chmod 600 /swapfile命令来设置swap文件的权限。接下来,运行sudo mkswap /swapfile命令来格式化swap文件。最后,使用sudo swapon /swapfile命令来启用swap。 第三种方法是编辑/etc/fstab文件来永久设置swap。首先,打开终端并输入sudo nano /etc/fstab来编辑文件。在文件的最后添加一行/swapfile none swap sw 0 0,然后保存并关闭文件。最后,运行sudo swapon -a命令来激活新的swap设置。 无论选择哪种方法,设置完成后可以使用free -h命令来查看swap是否已成功设置。 ### 回答2: 在Ubuntu中,可以通过以下步骤设置Swap虚拟内存)。 第一步,打开终端。可以通过按下Ctrl + Alt + T组合键来打开终端。 第二步,输入以下命令来查看系统当前的Swap设置情况: ``` sudo swapon --show ``` 如果没有任何输出,则表示Swap未启用。 第三步,创建一个Swap文件。可以使用以下命令来创建一个名为swapfile的文件,大小为2GB(根据需求可以调整文件大小): ``` sudo fallocate -l 2G /swapfile ``` 第四步,将文件的权限设置为只读: ``` sudo chmod 600 /swapfile ``` 第五步,将文件格式化为Swap: ``` sudo mkswap /swapfile ``` 第六步,启用Swap文件: ``` sudo swapon /swapfile ``` 第七步,修改/etc/fstab文件以使Swap文件在系统重启后自动启用。打开/etc/fstab文件并在末尾添加以下行: ``` /swapfile none swap sw 0 0 ``` 保存并关闭文件。 最后一步,重新启动系统以使Swap文件生效: ``` sudo reboot ``` 完成以上步骤后,Swap文件将成功设置并启用在Ubuntu系统中。你可以使用以下命令来验证Swap是否已启用: ``` sudo swapon --show ``` ### 回答3: 在Ubuntu系统中,swap虚拟内存)用于扩展系统的内存空间,以提高系统的性能和稳定性。以下是在Ubuntu中设置swap的方法: 1. 首先,通过命令查看系统当前的swap使用情况,可以使用以下命令: ``` sudo swapon --show ``` 如果没有任何输出,表示系统当前没有启用swap。 2. 创建一个文件作为swap的存储空间,可以使用以下命令: ``` sudo fallocate -l <swap大小> <swap文件路径> ``` 其中,<swap大小>是swap文件的大小,可以使用单位G(GB)或M(MB),例如:"1G"或"512M",<swap文件路径>是swap文件的路径和名称。 3. 设置该文件为swap格式,通过以下命令: ``` sudo mkswap <swap文件路径> ``` 4. 启用swap,使用以下命令: ``` sudo swapon <swap文件路径> ``` 5. 验证swap是否启用成功,可以使用以下命令: ``` sudo swapon --show ``` 如果输出中包含swap文件的相关信息,则表示swap已成功启用。 6. 对于永久性地启用swap,在系统启动时自动加载swap文件,需要将该文件添加到/etc/fstab文件中。打开该文件并在末尾添加以下内容: ``` <swap文件路径> swap swap defaults 0 0 ``` 保存并关闭文件。 经过以上步骤,您成功地设置了swap虚拟内存)在Ubuntu系统中。注意,建议swap的大小不超过系统内存的2倍,以避免过度使用磁盘空间。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值