O servidor de produção possui 16 GB de RAM e um sistema operacional de 32 bits. Substitua por um sistema operacional de 64 bits?

7

Eu tenho um servidor de produção com 16GB de RAM que vem com uma instalação de 32 bits do CentOS.

O site hospedado neste servidor está recebendo quantidades crescentes de tráfego todos os dias, o que levou a alguns problemas de desempenho do MySQL. Eu corri mysqltuner.pl e recebi as seguintes mensagens:

[!!] Switch to 64-bit OS - MySQL cannot currently use all of your RAM
  *** MySQL's maximum memory usage is dangerously high ***
  *** Add RAM before increasing MySQL buffer variables ***

Posso sobreviver com o sistema operacional de 32 bits ou preciso instalar a versão de 64 bits?

    
por Alexandru Trandafir Catalin 02.10.2012 / 12:57

3 respostas

24

Você pode sobreviver muito bem com a instalação do CentOS de 32 bits. Mas, como diz o aviso, usar um sistema operacional de 32 bits significa que o MySQL não pode realmente usar todas (ou até mesmo a maioria) a RAM instalada no sistema.

Parece um desperdício para mim. Se o hardware suporta 64 bits, eu certamente substituiria o SO de 32 bits por um de 64 bits, sim. Você provavelmente vai querer fazer alguns testes primeiro, e / ou usar um segundo servidor para descobrir o que vai quebrar quando você alternar os sistemas operacionais, porque algo sempre acontece.

Estritamente falando, você não precisa para instalar um sistema operacional de 64 bits, mas você definitivamente deveria. E provavelmente mais cedo, em vez de mais tarde, antes que as limitações de RAM de um SO de 32 bits causem problemas.

    
por 02.10.2012 / 13:09
13

O espaço máximo de endereçamento virtual de um binário de 32 bits é 2 ^ 32 (4 GB) - assim que atinge este limite, não vai a lado nenhum.

Você deve mudar para 64 bits? Absolutamente.

Não somente você não vai mais atingir a barreira da memória, o conjunto de instruções genérico de 64 bits tem um desempenho geralmente melhor que o genérico de 32 bits (devido à idade de x86) e, assim, mudar para x64 resultará em termos tanto da memória quanto da velocidade computacional.

Obviamente, se você compilou o x86 em binários com o alvo do processador, você pode achar que o desempenho comparado ao x64 não é tão diferente, já que você está usando binários do CentOS, obviamente esse não é o caso.

    
por 02.10.2012 / 13:20
3

Embora a resposta tenha sido aceita, há muita coisa faltando na discussão aqui.

Primeiro: Alexandru não menciona quais mecanismos de banco de dados estão sendo executados nesta máquina, nem se é um servidor DBMS dedicado ou se também está executando outras coisas, nem o tamanho dos dados, nem estatísticas sobre E / S / VFS físicas uso.

Para um servidor baseado em MyISAM dedicado, você não obterá muito benefício de tornar mais memória endereçável. O VFS faz um trabalho tão bom de armazenar em cache a E / S quanto o MySQL pode. OTOH se fosse innodb - então por golly, sim: o buffer pool de innodb em uma caixa dedicada deveria ser em torno de 80% da memória física em uma máquina dedicada.

Independentemente de qual SGBD é usado, a mudança para 64 bits tem um benefício de desempenho significativo ao fazer operações de comparação no SGBD - o quanto depende se você está fazendo muitas pesquisas com hash ou b-tree.

Se a mesma caixa estiver sendo usada para webserving, então a grande diferença será se você estiver usando muito SSL na caixa - SSL é tudo sobre o cálculo de grandes números - então mesmo sem a aceleração AES em chips intel recentes há um aprimoramento lá também.

    
por 02.10.2012 / 17:04