atualização do servidor de 5 anos

2

Estou procurando atualizar um servidor para um aplicativo da web. Atualmente, o aplicativo está executando muito lento. Fizemos alguns ajustes no mysql (que é um outro problema em si) e fizemos alguns ajustes para que as consultas mais pesadas fossem executadas em uma cópia do banco de dados em outro servidor como backup, mas isso não durará muito mais tempo e nós está procurando atualizar.

Atualmente, as CPUs dos servidores são (4) CPU Intel (X) XEON (TM) 2.00GHz, com 1 gig de ram.

O banco de dados é de 442,5 MiB, com cerca de 1.743.808 registros.

Existem duas partes do programa, a primeira, lado a, insere e atualiza a maioria dos dados. Lado b, lê os dados e faz algumas pequenas atualizações.

Atualmente, nosso maior dia para o lado a é de 800 usuários (de 40.000 usuários durante todo o ano) que imputam o sistema. E o nosso Side b é atualmente desconhecido, no entanto, temos um total de 1000 clientes.

O sistema provavelmente limitará a 5.000 clientes do lado b, com cerca de um ano de 300.000 usuários.

O banco de dados atual tem 5 anos, portanto é muito provável que esperamos que o banco de dados cresça rapidamente, possivelmente dobrando a cada ano (o que provavelmente poderemos arquivar registros mais antigos se chegarmos a isso).

Então, com isso dito, devemos obter um servidor para cada lado do aplicativo, lado a ser o mestre, lado b sendo o escravo, quaisquer atualizações feitas no lado b são roteador para o lado a.

Então a pergunta é que eu devo pegar 2 destes ou 1.

  • 2 x Intel Nehalem Xeon E5520 2,26 Ghz (8 núcleos)
  • Memória DDRIII de 12 GB
  • HDD SATAII de 500 GB
  • Velocidade da porta de 100 Mbps

E, naturalmente, eu precisaria ter um backup redundante para que pudesse ser quatro deles.

    
por rizzo0917 15.03.2011 / 16:27

4 respostas

5

Currently ... 1 gig of ram.

1 GB, para um banco de dados ocupado? Mesmo? O tamanho atual do seu banco de dados é de 445MB. Embora isso seja menor que seu 1 GB de RAM, adicionar mais RAM forneceria espaço para que índices, registros de transações e conjuntos de trabalho de consulta residissem na memória. Se você subir para apenas 4 GB de RAM, eu aposto que você acha que seu subsistema de disco dificilmente é mais importante e que seu processador já é adequado.

Dito isto, eu ainda estaria olhando para um novo servidor. Os discos rígidos duram apenas muito tempo e você ainda precisa colocar as coisas no disco eventualmente. Há também uma chance de que, uma vez que tudo esteja na RAM, você descubra que realmente quer mais potência de CPU. Então, seguindo em frente ...

should I get ... 500GB SATAII HDD

Querido Senhor, não. Você quer pelo menos 4 (contá-los) discos nesse sistema (mais claro, seria melhor), e você quer discos SAS se puder pagar por eles. Você não precisa de muito espaço no disco rígido com base no que você mostrou, portanto, obtenha os menores (e, portanto, mais baratos) discos 10K que puder, coloque-os em uma configuração RAID 10 e certifique-se de ter um Controlador RAID real, baseado em hardware (infelizmente, espere que isso acrescente cerca de US $ 1000 ao custo total, ou você não comprou um bom controlador). Você deve ser capaz de colocar tudo isso em uma caixa de 1U, sem nenhum problema, mas você pode querer dimensionar uma caixa de 2U com mais algumas baias para permitir o crescimento futuro. O custo total de um sistema como este seria de US $ 4.000 a US $ 5.000.

Se um sistema com 4 discos SAS soa mais caro do que você queria, fale com seu chefe e diga que você pode adiar o novo servidor este ano apenas adicionando memória RAM ao antigo, se ele puder lhe dar o dinheiro que você precisa para um servidor real no próximo ano. As probabilidades são de que ele queira fazer as duas coisas: deixar você comprar a RAM este ano e fazer com que você fique barato no servidor no próximo ano. Mas mesmo que você tenha que se conformar com o SATA em vez do SAS, pelo menos, fique firme ao obter 4 discos mais o RAID 10 baseado em hardware.

    
por 15.03.2011 / 20:20
3

O E5520 é o único chip que você pode acessar? é um pouco antigo agora e você veria alguns benefícios de desempenho para os novos chips da série 56xx. Também que NIC quase certamente será de 1Gbps e não de 100Mbps, placas de servidor não têm mais 100Mbps, tanto quanto eu saiba. Eu também consideraria usar um par de discos SAS 10krpm espelhados para o trabalho de BD se eu fosse você também. Ah, e certifique-se de usar uma versão de 64 bits do Centos também, idealmente uma versão recente como 5.6 ou mais.

Quanto à sua pergunta atual, a única máquina que você especificou será consideravelmente mais rápida do que a sua máquina existente. Eu ficaria tentado a tentar usar uma única máquina mais para as especificações que eu mencionei acima, isso permitirá que você invista nos melhores discos, etc. então, se você sentir que precisa de uma segunda máquina, eu pensaria sobre isso no momento .

    
por 15.03.2011 / 16:59
1

Você pode querer apenas atualizar o subsistema de disco, que provavelmente é o seu gargalo. Você não informa seu sistema operacional, mas há ferramentas em todos eles para testar o quanto seu disco está sendo atingido.

RAID 1 de duas unidades para os logs de transação e um RAID 5 de 3 unidades para o DB seria ideal a partir do que você descreve. Use pelo menos drives SAS, se puder.

    
por 15.03.2011 / 16:36
1

Gostaria de sugerir que você dedique um pouco de tempo para entender por que sua configuração atual é "lenta" e com estatísticas mais precisas sobre quantas consultas de cada tipo estão sendo executadas. Especialmente considerando que você pode ter um aumento de 10x no tráfego, se você tentar escalar às cegas, corre o risco de escalar a coisa errada e ter que aumentar novamente no próximo ano gastando muito mais tempo / dinheiro do que o necessário.

Algumas coisas específicas que eu começaria a analisar:

  • Entenda melhor seu tráfego atual. Não só quanto, mas quanto de cada tipo. Você já parece tê-lo dividido por leituras / gravações, mas também considera outros tipos e como cada um afeta o desempenho (por exemplo, em cache / sem cache, consultas lentas / rápidas, etc ...). O perigo de considerar uma categoria geral como "usuários" é que os diferentes tipos de tráfego podem aumentar o mesmo (ex: suas leituras podem aumentar mais rápido que suas gravações) e os tipos também serão escalados de forma diferente (ex: escalas de replicação MySQL lêem bem, mas não escreve). Monitorar o tráfego ao longo de semanas / meses também ajudará você a obter melhores tendências no crescimento futuro do seu tráfego.
  • Descubra o gargalo do seu servidor atual. É algo simples, como apenas CPU / Memória ou há questões mais sutis envolvidas, como design de aplicativo / banco de dados. Não gaste muito dinheiro com CPU / RAM quando tudo que você precisa é apenas um índice de tabela melhor.
  • Benchmark / profile você sistema para saber quais são os seus limites. Isso é importante não apenas para saber quando você precisará aumentar ou diminuir a escala novamente, mas também para quantificar o desempenho do sistema ao alterar as configurações de hardware / software. Essa última revisão de aplicativo reduziu o desempenho em 25%? Fazer ajustes na configuração do MySQL faz alguma coisa? A menos que você meça, você pode nunca saber.
  • Dependendo da lentidão do seu sistema atual e do seu orçamento de atualização, eu consideraria apenas a obtenção de um novo servidor imediatamente. À medida que você configura o novo servidor, faça alguns testes / benchmarking básicos para ver que tipo de aumento de desempenho você obterá com ele. Se você tiver sorte, poderá encontrar um aumento tão grande que a questão de obter mais servidores será respondida por você.
por 15.03.2011 / 17:48