linux - OOM / 交换未被使用

linux - OOM / 交换未被使用

当我的交换区未被触及时,我收到内存不足错误。我有 4GB 内存和 4GB 交换空间。我通过 swapon 启用了交换,并且在执行 free 时,我看到那里列出了交换。

我认为,overlayfs / tmpfs 和交换所有一起工作可能存在一些问题。我一直遇到相反的问题,试图阻止交换使用,所以我似乎无法弄清楚发生了什么变化。

另外,我正在使用启用 grsecurity 的内核。内存分配的工作方式是否有可能不同?

免费快照:

                      total        used        free      shared  buff/cache   available
          Mem:        3586392      157292       67052      141664     3362048     3236524
          Swap:       4194300           0     4194300

当我将交换配置添加到/etc/fstab后,这些数字发生了变化;但是,我仍然没有看到任何交换使用情况。我更改的唯一一件事是 /dev/shm 的 tmpfs 大小和我的 overridefs 卷 (/rw)。两者一开始都没有使用太多空间,因此更改应该不会产生任何影响。

                      total        used        free      shared  buff/cache   available
          Mem:        3586392      571392     1714036      146096     1300964     2818004
          Swap:       4194300           0     4194300

我重新启动了一些服务,它们仍在运行,我看到的最大区别是可用内存现在显示为 1.7GB,而之前为 67MB。

我仍然很困惑为什么这会产生影响。如果我通过 swapon 启用交换,它的行为应该与我通过 /etc/fstab 配置它并执行 swapon -a 的行为相同。此外,它甚至还没有被使用。

答案1

这是我使用的内核版本的一个错误。

相关内容