OpenBSD 内存不足,但未使用交换空间

OpenBSD 内存不足,但未使用交换空间

我正在使用全新安装的 OpenBSD (5.6 amd64)。我正在尝试构建 Boost 库,但相当多的编译因 cc1plus 内存不足错误而失败。

我在其他地方读到增加交换可以解决这个问题。然而,对我来说这不起作用。目前我已经设置了 4 GB 交换。然而,这些都没有被使用。 Swapctl 总是显示

total: 8390592 512-blocks allocated, 0 used, 8390592 available

即使编译失败,这仍然是一样的。

我应该提到我的安装有一些不寻常的地方。它安装在 USB 记忆棒上,我通过 softraid0 方法使用了全盘加密。所以我的 /dev/sd1b 是我的 4g 交换区,/dev/sd1a 是 raid,/dev/sd2 (加密的 raid)由安装程序正常分区,除了那里没有交换区。

我的问题是为什么即使编译器内存不足,我的交换空间也根本没有被使用?

答案1

默认情况下,OpenBSD 不允许进程使用无限内存。这些限制在 中定义/etc/login.conf

如果达到这些限制,即使整个操作系统仍然有足够的剩余空间,您也会收到内存不足的错误。大多数情况下,这很好,因为一个恶意进程无法耗尽所有内存并使系统崩溃。然而,有时它会成为障碍。幸运的是你可以改变它。

答案2

staff通过将自己添加到该组中,您也可能会获得一些关注。该组的内存限制似乎比其他类别的用户设置得更宽松。

相关内容