de 32 bits em 64 bits: uso de memória para vários processos

1

Estou trabalhando em uma solução de hospedagem Linux para software de servidor de jogos, no entanto, o software em questão é de 32 bits e eu estaria rodando 64 bits no host. Agora, eu sei que posso executar aplicativos de 32 bits em um host de 64 bits em uma cadeia chroot de 32 bits (ou um sistema multilib, mas planejo fazer o primeiro para mantê-los separados no sistema de arquivos), mas o que acontece quando todos os aplicativos de 32 bits usam mais de 4 GB de RAM combinados?

Digamos que eu tenha três programas de servidor de jogo de 32 bits que usem 2 GB cada - o que acontecerá quando os dois primeiros atingirem 4 GB juntos e o terceiro conseguirá ser executado?

Eu esperava contornar isso executando uma userland de 32 bits sob um kernel Linux de Modo de Usuário de 64 bits, no entanto, aprendi ao meu desdém que não é possível executar uma área de usuário de 32 bits em um kernel UML de 64 bits . Eu suponho que eu poderia rodar um kernel UML de 32 bits em uma userland de 32 bits mas então eu estaria correndo contra a mesma condição de memória e assim poderia estar usando chroot jails de qualquer maneira?

    
por Aaron Mason 06.09.2013 / 03:09

1 resposta

3

Cada processo é executado em seu próprio espaço de endereçamento e, com 32 bits, restringe esse espaço de endereçamento a cerca de 3 GB para cada processo. A soma da memória usada pelos aplicativos de 32 bits é completamente irrelevante. Não há nada para se locomover.

Se isso fosse um problema, as prisões chroot não teriam a menor chance de ajudar. Eles afetam apenas os caminhos dos arquivos.

    
por 06.09.2013 / 03:11