Executando Linux de 64 bits com 750 MB de RAM: vale a pena?

13

Eu tenho um VPS do servidor Debian e o provedor instalou o Debian 5. de 64 bits. Devo solicitar uma instalação de 32 bits, já que tenho apenas 750 MB de RAM e ouvi dizer que variáveis ​​consomem mais RAM em sistemas de 64 bits?

Jhonnytunes
fonte
2
Depende do que você vai executar, na verdade. Experimente algumas de suas cargas e verifique se sua RAM será suficiente.
Renan
Vou correr: Postgres, Apache e Tomcat.
Jhonnytunes
1
Nota: se você decidir atualizar para mais RAM mais tarde, os 32 bits podem ficar problemáticos (existe o PAE para salto com vara acima do limite de 4 GB, mas que possui alguma sobrecarga própria).
Piskvor saiu do prédio
Ambos os hosts VPS que usei kernels personalizados instalados para seus hipervisores, então é provável que você tenha que se ater às versões do sistema operacional - se eles não oferecem 32 bits, duvido que você possa instalar o seu próprio.
Rup

Respostas:

16

A resposta curta :

As variáveis ​​não ocupam o dobro do espaço no software de 64 bits versus 32 bits. O ganho potencial de memória ao mudar para um sistema operacional de 32 bits não valerá o esforço.

A resposta longa :

Os números podem ser maiores, sim, mas isso não significa que eles serão. Isso também se aplica a números, e não a cadeias, e as cadeias (geralmente) são as que consomem mais quantidade de memória em um aplicativo.

Além disso, muitos aplicativos especificam explicitamente o tamanho do número com o qual desejam trabalhar, como em idiomas como C, intpode ser de qualquer tamanho, incluindo menores que 32 bits. E indo ainda mais longe, na minha máquina Linux de 64 bits, em C inté de 32 bits. Portanto, você teria que solicitar explicitamente long longpara obter um número de 64 bits.

Então, basicamente, os aplicativos não usarão mais memória apenas porque foram compilados para 64 bits.

Edição :
Em resposta à alegação de Gilles de que o Firefox de 64 bits usa duas vezes mais memória, fiz uma comparação entre o Firefox de 32 e 64 bits no meu sistema.
Testei iniciando 5 guias abertas em http://acid3.acidtests.org/ e realizei o teste três vezes (uma vez em 32 bits, uma vez em 64 bits e repita duas vezes). Eu escolhi este site porque é intensivo em JavaScript e usa conteúdo estático (cada renderização da página fornecerá os mesmos dados).

Na execução final:

  • 32 bits: 173.244kb rss / 918.348kb virt

  • 64 bits: 184.588kb rss / 966.624kb virt

Eu poderia fazer testes mais extensos sim, mas acho que isso demonstra bem o suficiente para que a diferença de tamanho entre os dois seja marginal.

Patrick
fonte
1
Isso é grosseiramente exagerado. Alguns programas consomem quase o dobro de memória no modo de 64 bits, depende do tipo de dados que eles manipulam. Percebi que o Firefox e o Chrome ocupam ainda mais do dobro da memória (nunca investiguei o porquê: tamanho do código?). Para o Apache, é provável que o consumo extra de memória seja pequeno (mas não medi).
Gilles 'SO- stop be evil'
@ giles dificilmente. Acabei de lançar um firefox de 32 e 64 bits. 32 bits usa 133.340kb após o lançamento. O 64 bits usa 133.412kb após o lançamento.
1111 Patrick
Talvez tenha melhorado recentemente, acho que verifiquei pela última vez com o Firefox 4. Avaliei usando um sistema inativo (executando quase apenas programas de 64 bits, o que deve favorecer o executável de 64 bits, já que algumas de suas bibliotecas compartilhadas já foram carregadas) e comparando a quantidade de memória livre após o carregamento de algumas guias (algumas JS, sem Flash): Descobri que (memória_memória_com_ff_64 - memória_memória_com_ficção)> 2 * (memória_em_computação_ff_32).
Gilles 'SO- stop be evil'
4
@ Gilles Acho que houve alguma falha no teste. Mesmo que o firefox armazenasse todos os últimos bits de dados como um número inteiro (sem seqüências de caracteres, o que não mudaria de tamanho), e cada número inteiro mudasse de 32 para 64 bits, o tamanho dobraria no máximo. Não há explicação para mais que dobrar.
1111 Patrick
2
"Os números podem ser maiores, sim, mas isso não significa que eles serão." - mas todos os ponteiros serão agora definitivamente ser de 64 bits, onde eles costumavam ser 32.
Rup
5

Eu escolho instalações de 32 bits em vez de 64 bits para sistemas com menos de 4gig de ram.

64 bits usa mais memória, devido à natureza de seus ponteiros, isso varia entre aproximadamente 10 e 50 megabytes extras para uma instalação LAMP de baunilha.

Em um sistema com ram limitado, por exemplo, 256meg, isso pode ser um pedaço considerável.

Tecnicamente, com o PAE, o mesmo se aplica até 64gig, no entanto, o espaço endereçável para aplicativos ainda é limitado a 4gig em qualquer caso. Portanto, com algo acima de 4gig, recomenda-se 64 bits para utilizar os ganhos de desempenho, principalmente os associados à sobrecarga do PAE.

Em poucas palavras: <4gig = 32 bits | > 4gig = 64 bits.

tomwof
fonte
3

Se o provedor instalou o Debian 5 de 64 bits, eu recomendo que você permaneça com esta versão.

A diferença entre 64 bits e 32 bits não está apenas no gerenciador de memória.

angelcervera
fonte
2

Exceto por alguns aplicativos de processamento de números que são executados mais rapidamente, o único benefício de um sistema de 64 bits é que você pode endereçar mais de 4 GB de memória. Como parte do espaço de endereço é reservado ao kernel, um processo obtém apenas 2 GB ou 3 GB de espaço de endereço (ou mais ou menos, dependendo da configuração do kernel). Para um caso de uso de banco de dados e servidor da Web, você não planeja trocar muito e não fará muito processamento de números. Portanto, com apenas 750 MB de RAM, você não verá nenhum benefício em usar um sistema de 64 bits.

O tamanho do código é praticamente o mesmo entre o código i386 (32 bits) e amd64 (64 bits). A memória de dados usada pelo programa de 64 bits é um pouco maior; quanto maior depende da aplicação. Eu esperaria ver uma diferença notável, mas não grande, para o seu caso de uso.

Dado que há um pequeno custo e nenhum benefício em usar 64 bits, recomendo que você use um sistema de 32 bits, se não houver muitos problemas para obter.

Gilles 'SO- parar de ser mau'
fonte