当我的交换区未被触及时,我收到内存不足错误。我有 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
这是我使用的内核版本的一个错误。