Por que recebo erros relacionados ao espaço de troca quando ainda tenho muita memória livre no Solaris 10?

1

Estou vendo alguns dos meus serviços sofrendo / quebrando com erros ao longo das linhas de "Erro ao alocar memória" ou "Não é possível criar novo processo", etc.

Estou um pouco confuso com isso, pois os logs mostram que, no momento, o sistema tem muita memória livre (cerca de 26GB em um caso) de memória disponível e não é particularmente estressado de qualquer outra forma.

Depois de observar uma falha da JVM com erro semelhante com a consulta adicionada de "Espaço fora da troca?" isso me fez cavar um pouco mais fundo.

Acontece que alguém configurou nossa zona com um arquivo de swap de 2GB. Nossa zona não tem memória limitada e atualmente tem acesso aos 128 GB de RAM que precisar. Nossas SAs planejam limitar isso a 32 GB quando tiverem a chance.

Meu pensamento atual é que, embora haja muita memória para o sistema operacional alocar, o espaço de troca parece muito subdimensionado (com base em outras respostas aqui). Parece que o Solaris está querendo ter certeza de que há espaço de troca suficiente para o caso de as coisas terem que ser trocadas (ou seja, reservando o espaço de troca).

Isso está certo ou existe algum outro motivo para eu ter erros de alocação de memória com essa grande quantidade de memória livre e espaço de troca aparentemente subdimensionado?

    
por Tom Duckering 14.04.2010 / 22:32

1 resposta

2

Ao contrário de outros sistemas operacionais que implementam o inoportuno out of memory killer ou equivalente, o Solaris não compromete a memória (a menos que você esteja usando técnicas de alocação muito específicas). Quando alocações regulares de memória são feitas, o sistema operacional garante que essa memória estará disponível quando necessário (ou seja, reserva). A desvantagem é que você precisa ter espaço de memória virtual suficiente para armazenar essa memória parcialmente não utilizada.

A RAM livre não está relacionada, mas também é responsável pelo tamanho da memória virtual.

Dê uma olhada na saída "swap -s" quando o problema ocorrer.

Note que você pode facilmente aumentar a área de troca adicionando arquivos ou dispositivos de troca.

    
por 15.04.2010 / 02:57