我在关闭交换时遇到了一个奇怪的问题。服务器有 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/