如何增加 RHEL7 上的交换空间

如何增加 RHEL7 上的交换空间
df -h

Filesystem                      Size  Used Avail Use% Mounted on

/dev/mapper/vg00-LogVol00_root  2.0G  929M  1.1G  46% /
devtmpfs                        3.8G     0  3.8G   0% /dev
tmpfs                           3.9G     0  3.9G   0% /dev/shm
tmpfs                           3.9G  8.6M  3.9G   1% /run
tmpfs                           3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/mapper/vg00-LogVol00_usr    10G  3.1G  6.9G  31% /usr
/dev/sda2                      1014M  189M  826M  19% /boot
/dev/mapper/vg00-LogVol00_home  2.0G   33M  2.0G   2% /home
/dev/mapper/vg00-LogVol00_tmp   5.0G   89M  5.0G   2% /tmp
/dev/mapper/vg00-LogVol00_var   5.0G  707M  4.3G  14% /var
/dev/mapper/vg00-LogVol00_opt   6.0G  1.3G  4.8G  21% /opt
tmpfs                           781M     0  781M   0% /run/user/1000

如何将交换空间从 3.9G 增加到 10G。可用内存为8G。

答案1

第一的,交换是 RAM 之外的一些存储资源。你说可用内存为 8GB。您tmpfs在文件系统列下看到的是 RAM,而不是 SWAP。

根据命令的输出df -h,显示文件系统,而 SWAP 不是文件系统。

请注意,您的所有tmpfs安装座均为 3.9gb ,/dev/shm并且是/run/sys/fs/cgroup动态的RAM 的分配。这意味着每个挂载点最多使用 3.9GB RAM。有三个挂载点,因此如果您以某种方式填充每个挂载点,则 3.9 + 3.9 + 3.9 = 11.7GB,这比您的总物理 RAM 8GB 还要多。填充其中任何一个并超过总物理内存,系统将停止,但我不会担心这些临时文件系统它们通常由 RHEL 在安装时自动生成,永远不会出现问题。

一个典型的条目/etc/fstab交换类似于磁盘上分区 ​​2 的/dev/sda2 swap swap defaults 0 0 位置/dev/sda2千兆字节。所以如果你有这个/etc/fstab然后验证有多少交换你实际上有,那么要增加它,你的选择是

  1. 对该磁盘重新分区,以便您拥有一些可以作为交换挂载的更大分区{通常不可能且不容易做到,因为永远不会剩余可用磁盘}
  2. 添加另一个磁盘并格式化并将其挂载为交换分区{可能最好把钱花在更多的内存上,除非你有备用磁盘和未使用的 SATA 端口}
  3. 如果您确实需要交换空间并且无法将 RAM 增加到 8GB 以上,那么创建一个交换文件https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/5/html/deployment_guide/s1-swap-adding 或者 https://docs.fedoraproject.org/en-US/Fedora/14/html/Storage_Administration_Guide/s2-swap-creating-file.html 或者 https://www.thegeekstuff.com/2010/08/how-to-add-swap-space/

答案2

您可能有两种情况。最简单的情况是您的交换分区是 LVM 分区。检查/etc/fstab它是否/dev/mapper/vg00-LogVol00-swap(或类似的东西)被挂载为交换分区。如果是,则运行

sudo swapoff /dev/mapper/vg00-LogVol00-swap
sudo lvresize -L 10G /dev/mapper/vg00-LogVol00-swap
sudo mkswap /dev/mapper/vg00-LogVol00-swap
sudo swapon -a

如果没有定义交换分区,则可以使用交换文件。选择一个有足够空间的分区(让我们选择/home

sudo fallocate -l 10G /home/swapfile 
sudo mkswap /home/swapfile
echo "/home/swapfile    none    swap    sw    0   0" | sudo tee -a /etc/fstab
sudo swapon -a

这两种解决方案在重新启动后都将持续存在。

答案3

这篇文章介绍了如何查看当前交换配置,这是上述文章中未涵盖的重要信息:

查看当前交换:

cat /proc/swaps

例如:

$ cat /proc/swaps
Filename                Type        Size    Used    Priority
/dev/dm-2               partition   8204284 344320  -

并找出/dev/dm-2指向什么查看/dev/mapper的内容;设备映射器 (dm) 使用的目录,例如 dm-crypt、dm-raid、dm-multipath:

$ ll /dev/mapper/
total 0
crw-------. 1 root root 10, 236 Feb 11 08:35 control
lrwxrwxrwx. 1 root root       7 Feb 11 08:35 fedora_localhost--live-home -> ../dm-3
lrwxrwxrwx. 1 root root       7 Feb 11 08:35 fedora_localhost--live-root -> ../dm-1
lrwxrwxrwx. 1 root root       7 Feb 11 08:35 fedora_localhost--live-swap -> ../dm-2
lrwxrwxrwx. 1 root root       7 Feb 11 08:35 luks-abcdef01-2345-6789-abcd-ef0123456789 -> ../dm-0

答案4

mount -o 重新挂载,大小=10g /dev/shm

相关内容