无法交换但有足够的物理内存可用

无法交换但有足够的物理内存可用

我在关闭交换时遇到了一个奇怪的问题。服务器有 192 GB 内存,154 GB 可用内存。

它是一个运行多个 Linux KVM 虚拟机的虚拟机管理程序。

当尝试:

# swapoff -a
swapoff: /dev/sda2: swapoff failed: Cannot allocate memory

但内存是免费的:

# cat /proc/meminfo
MemTotal:       197805748 kB
MemFree:        162274264 kB
MemAvailable:   162388912 kB
Buffers:             432 kB
Cached:           353524 kB
SwapCached:       221828 kB
Active:         28253440 kB
Inactive:        5349056 kB
Active(anon):   28159204 kB
Inactive(anon):  5289320 kB
Active(file):      94236 kB
Inactive(file):    59736 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:      124999676 kB
SwapFree:       124534724 kB
Dirty:               796 kB
Writeback:             0 kB
AnonPages:      33063024 kB
Mapped:            59236 kB
Shmem:            199984 kB
Slab:             313264 kB
SReclaimable:     206596 kB
SUnreclaim:       106668 kB
KernelStack:       10784 kB
PageTables:        94012 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:    223902548 kB
Committed_AS:   43094824 kB
VmallocTotal:   34359738367 kB
VmallocUsed:      794656 kB
VmallocChunk:   34358685284 kB
HardwareCorrupted:     0 kB
AnonHugePages:  32186368 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:      136564 kB
DirectMap2M:     8136704 kB
DirectMap1G:    195035136 kB

有谁知道可能是什么原因?

答案1

尝试一下:

sync ; echo 3 > /proc/sys/vm/drop_caches

进而

swapoff

或者临时添加新的交换文件

答案2

我现在就来解决这个问题。

自由交换 CUANDO NO SE DEJA DESACTIVAR。

创建存档并交换临时文件

dd if=/dev/zero of=/home/swap bs=1024 计数=512000

转换存档和交换|

mkswap /home/交换

档案激活 交换时间

交换 /home/交换

解决问题的交换问题

交换 /dev/dm-1

解决交换问题的新问题

交换 /dev/dm-1

停用 Swap Temporal Creada 档案

交换 /home/交换

Swap 删除程序

rm -f /home/交换

富恩特:https://leizhilong.github.io/post/case-study-swapoff-cannot-allocate-memory/

相关内容