OpenBSD fica sem memória, mas não usa espaço de troca

OpenBSD fica sem memória, mas não usa espaço de troca

Estou trabalhando com uma nova instalação do OpenBSD (5.6 amd64). Estou tentando construir bibliotecas Boost e algumas compilações estão falhando com erros de falta de memória do cc1plus.

Li em outro lugar que aumentar a troca pode resolver esse problema. No entanto, para mim isso não está funcionando. Atualmente tenho 4 giga de swap configurados. No entanto, nada disso está sendo usado. Swapctl sempre mostra

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

Mesmo quando as compilações falham, isso permanece o mesmo.

Há algo incomum na minha instalação que devo mencionar. Ele está instalado em um pendrive e usei criptografia completa de disco por meio do método softraid0. Portanto, meu /dev/sd1b é meu 4g de swap, /dev/sd1a é raid, /dev/sd2 (o raid criptografado) é particionado normalmente pelo instalador, exceto que não há swap.

Minha pergunta é por que meu espaço de troca não está sendo usado, mesmo quando o compilador fica sem memória?

Responder1

Por padrão, o OpenBSD não permite que processos usem memória infinita. Esses limites são definidos em /etc/login.conf.

Se você atingir esses limites, receberá um erro de falta de memória, mesmo que o sistema operacional como um todo ainda tenha bastante memória restante. Na maioria das vezes isso é bom, já que um processo invasor não será capaz de sugar toda a memória e deixar o sistema de joelhos. Às vezes, porém, isso atrapalha. Felizmente você pode mudar isso.

Responder2

Você também pode ganhar alguma força adicionando-se ao staffgrupo. Os limites de memória para esse grupo parecem ser definidos de forma mais generosa do que para outras classes de usuários.

informação relacionada