OpenBSD se queda sin memoria y no utiliza espacio de intercambio

OpenBSD se queda sin memoria y no utiliza espacio de intercambio

Estoy trabajando con una instalación nueva de OpenBSD (5.6 amd64). Estoy intentando crear bibliotecas Boost y algunas compilaciones fallan y cc1plus se queda sin memoria.

Leí en otra parte que aumentar el intercambio puede resolver este problema. Sin embargo, para mí eso no funciona. Actualmente tengo 4 gigas de intercambio configurados. Sin embargo, nada de eso siquiera se está utilizando. Swapctl siempre muestra

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

Incluso aunque las compilaciones fallen, esto sigue igual.

Hay algo inusual en mi instalación que debo mencionar. Está instalado en una memoria USB y he utilizado cifrado de disco completo mediante el método softraid0. Entonces, mi /dev/sd1b es mi 4g de intercambio, /dev/sd1a es raid, /dev/sd2 (el raid cifrado) está particionado normalmente por el instalador, excepto que no hay intercambio allí.

Mi pregunta es ¿por qué mi espacio de intercambio no se utiliza en absoluto, incluso cuando el compilador se queda sin memoria?

Respuesta1

Por defecto, OpenBSD no permite que los procesos utilicen memoria infinita. Estos límites están definidos en /etc/login.conf.

Si alcanza esos límites, obtendrá un error de falta de memoria aunque al sistema operativo en su conjunto todavía le quede suficiente. La mayoría de las veces esto es bueno, ya que un proceso malicioso no podrá absorber toda la memoria y poner al sistema de rodillas. A veces, sin embargo, se interpone en el camino. Afortunadamente puedes cambiarlo.

Respuesta2

También puedes ganar algo de tracción agregándote al staffgrupo. Los límites de memoria para ese grupo parecen estar establecidos de manera más generosa que para otras clases de usuarios.

información relacionada