【操作系统】Ubuntu Swap内存扩容
目录
背景
查看内存信息
确定当前的交换空间大小
查看内存使用情况
查看fstab文件,确认swap分区位置
查看swap分区大小
swap分区扩容
关闭swap分区
创建大的swap文件
格式化swap空间
关闭之前的swap
开启新swap
开机挂载
验证交换空间的大小
背景
在执行某些程序的时候,需要大量内存,但我们没有这么多的物理内存情况下,可以考虑使用swap内存来解决。如有时候build 大模型的镜像的时候,需要内存可能高达好几百G内存,此时就可以使用这里的方法扩容swap内存来实现。
查看内存信息
确定当前的交换空间大小
sudo swapon --show
NAME TYPE SIZE USED PRIO
/swapfile file 2G 1.7G -2
查看内存使用情况
free -g
total used free shared buff/cache available
Mem: 31 2 27 0 0 27
Swap: 0 0 0
查看fstab文件,确认swap分区位置
cat /etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
# / was on /dev/nvme0n1p2 during installation
UUID=7cc1912c-3b10-4630-8c97-de02e675b09a / ext4 errors=remount-ro 0 1
# /boot/efi was on /dev/nvme0n1p1 during installation
UUID=4E4D-C7B8 /boot/efi vfat umask=0077 0 1
/swapfile none swap sw 0 0
# ...
参数含义:
/swapfile
: 这是你的交换文件的路径。在大多数情况下,Ubuntu 默认会创建一个名为/swapfile
的交换文件。none
: 表示没有文件系统类型,因为这是一个特殊的文件而不是磁盘分区。swap
: 指定文件的类型为交换空间。sw
: 这个字段告诉操作系统,在启动时要启用这个交换文件。0
: 表示在dump
命令中被忽略。0
: 表示在系统启动时不进行交换文件的检查。
查看swap分区大小
sudo fdisk -l /swapfile
Disk /swapfile: 2 GiB, 2147483648 bytes, 4194304 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
这里看到swap空间为2 GiB,而我们需要扩展到32GB,所以至少要扩展30GB。
swap分区扩容
这里通过本身磁盘剩余空间扩容方案
关闭swap分区
sudo swapoff -a
创建大的swap文件
这里count大小为32GB,of参数为需要写盘位置
dd if=/dev/zero of=/opt/swap bs=1024 count=33554432
33554432+0 records in
33554432+0 records out
34359738368 bytes (34 GB, 32 GiB) copied, 29.9129 s, 1.1 GB/s
格式化swap空间
/sbin/mkswap /opt/swap
mkswap: /opt/swap: insecure permissions 0664, fix with: chmod 0600 /opt/swap
Setting up swapspace version 1, size = 32 GiB (34359734272 bytes)
no label, UUID=8d156b8f-cace-44b4-99ce-44dc3ce74c09
关闭之前的swap
sudo swapoff /swapfile
开启新swap
sudo /sbin/swapon /opt/swap
swapon: /opt/swap: insecure permissions 0664, 0600 suggested.
swapon: /opt/swap: insecure file owner 1000, 0 (root) suggested.
开机挂载
sudo vim /etc/fstab
/opt/swap none swap sw 0 0
验证交换空间的大小
swapon --show