我执行以下步骤来增加交换大小
但是当我从 swapoff /dev/mapper/rootvg-swap 启动时,它会卡住很长时间并且不会返回提示
为什么我们可以解决这个问题
swapoff /dev/mapper/rootvg-swap
lvresize -L +5g /dev/mapper/rootvg-swap
mkswap /dev/mapper/rootvg-swap
swapon /dev/mapper/rootvg-swap
vmstat 1
procs -----------memory---------- ---swap-- -----io---- --system-- ----- cpu------
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 2027848 127788 28804 18490972 105 38 180 211 25 59 17 6 64 13 0
1 0 2027848 126944 28812 18490972 0 0 0 124 1073 1491 16 1 82 1 0
0 0 2027848 126076 28828 18490956 0 0 0 104 727 1236 6 0 94 0 0
0 0 2027848 126076 28828 18491008 0 0 0 0 452 979 2 0 98 0 0
1 0 2027696 130960 28828 18486500 480 0 480 92 985 1415 21 4 69 5 0
0 0 2027696 130984 28844 18486572 0 0 0 43 421 984 1 0 98 1 0
答案1
swapoff 命令需要将交换文件 (/dev/mapper/rootvg-swap) 中的所有交换内存刷新回主内存(或者可能是其他地方),然后才能禁用交换文件。这可能需要一些时间才能完成,并且您可能没有足够的可用内存。
您可以通过添加更多交换文件来增加可用的交换空间量
swapon 手册页包含有关多个交换文件的更多信息,这些信息可能有助于特别了解优先级。
解决问题最安全的方法可能是重新启动到单用户模式,并在系统没有内存压力时执行您概述的进程。
最好的解决方案是根据系统工作负载适当调整系统大小并添加更多内存。
答案2
我最近在 Centos 7 VM 上遇到了这个问题。我停了又启动了好swapoff
几次,因为我很不耐烦,以为“什么都没有发生”。
最后一次尝试时,我尝试在swapon --show
几分钟后在单独的终端上运行,发现使用的交换空间量正在减少,尽管速度很慢 - 即 1.5MB/s,因此大约需要一个小时十五分钟才能完成,因为大约 6.5GB 处于交换中 - 虽然有足够的主内存可用。最终它成功完成了。