相关疑难解决方法(0)

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

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

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

当尝试:

# swapoff -a
swapoff: /dev/sda2: swapoff failed: Cannot allocate memory
Run Code Online (Sandbox Code Playgroud)

但内存是免费的:

# 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: …
Run Code Online (Sandbox Code Playgroud)

linux memory centos swap virtual-memory

7
推荐指数
1
解决办法
9641
查看次数

当 overcommit_memory==2 时交换失败

我已通过设置禁用内存过度使用overcommit_memory=2。现在,当我尝试时swapoff,出现此错误:

swapoff:/dev/sda5:swapoff 失败:无法分配内存

但我实际上有0 MiB交换和大量可用内存!我尝试设置overcommit_ratio为 100,但它没有改变任何东西。

如果我暂时overcommit_memory=0按默认设置,我可以成功swapoff,然后重新禁用过度提交。

为什么会有这种奇怪的行为?这是一个错误吗?


按照评论中的要求进行编辑

$ grep -E '^Mem|Commit' /proc/meminfo
MemTotal:        2044420 kB
MemFree:          751836 kB
CommitLimit:     4122112 kB
Committed_AS:    2752544 kB
Run Code Online (Sandbox Code Playgroud)

memory swap

6
推荐指数
2
解决办法
8966
查看次数

标签 统计

memory ×2

swap ×2

centos ×1

linux ×1

virtual-memory ×1