O que é configuração de hardware ideal para aplicação de carga pesada LAMP

3

Eu preciso executar o aplicativo Linux-Apache-PHP-MySQL (plataforma de e-learning do Moodle) para um grande número de usuários simultâneos - estou apontando para 5.000 usuários. Por concorrente quero dizer que 5000 pessoas devem poder trabalhar com o aplicativo ao mesmo tempo. "Trabalho" significa não apenas ler o banco de dados, mas também gravar.

O aplicativo não é muito típico, pois está fazendo muitas inserções / atualizações no banco de dados, portanto, as técnicas de cache não estão ajudando muito. Estamos usando o mecanismo de armazenamento InnoDB. Além disso a aplicação não é escrita com desempenho em mente. Por exemplo, um thread do Apache geralmente ocupa cerca de 30-50 MB de RAM.

Eu ficaria muito satisfeito com as informações sobre o hardware necessário para criar uma configuração escalonável capaz de lidar com esse tipo de carga.

Estamos usando agora dois HP DLG 380 com dois processadores de 4 núcleos que são capazes de lidar com cargas muito mais baixas (normalmente, 300 a 500 usuários simultâneos). É razoável investir neste tipo de caixas e construir cluster usando-as ou é melhor usar algum hardware mais sofisticado?

Estou particularmente curioso

  • quantos e quão poderosos servidores são necessário (número de processadores / núcleos, tamanho da RAM)
  • qual equipamento de rede deve ser usado (que tipo de interruptores, placas de rede)
  • qualquer outro hardware, como armazenamento em disco particular soluções, etc, que são necessárias

Outra coisa é como juntar tudo, essa é a arquitetura mais ideal. Clustering com MySQL é bastante difícil (as pessoas estão reclamando sobre o MySQL Cluster, mesmo aqui no Stackoverflow).

    
por Piotr K. 16.03.2010 / 12:01

2 respostas

3

Discos. LOTES de discos RÁPIDOS atrás de um controlador RAID adequado. Eu pessoalmente uso uma gaiola de unidade de rack SuperMicro 2 que tem splace para 24 discos de 2,5 ", junto com discos WD Velociraptor 10k RPM - bons o suficiente para mim. Você pode facilmente empilhar essas caixas para endereçar mais discos - o controlador RAID que eu uso (Adaptec 5805 ) pode endereçar cerca de 190 discos.Quando falamos de banco de dados de ponta, sem interrupções e atualizações, os discos SERÃO o seu problema.

Pegue X desses (x > 1) para redundância e master / escaneie-os em banco de dados (não um perito mySQL aqui).

rede: Possivelmente 1gbit internamente no cluster. Antes de ir 10gbit - olhe para Infiniband (12gbit). Com placas adequadas que é mais barato do que usar 10gbit ethernet e tem uma melhor latência.

Em seguida, use caixas menores / outras para o front end. Tanto o supermicro quanto o Tyan possuem gaiolas de múltiplos nós - você pode obter um sistema de 2 unidades de rack que é de 4 computadores individuais, cada um com 2 processadores. Agrupe o front end;) Processadores modernos agradecem ao céu poder endereçar uma quantidade significativa de RAM, então o processo de 50mb / apache não é tão ruim daquele lado. Acostume-se a máquinas com 32 ou 64 gigabytes de memória RAM;)

Alterantivamente, você pode querer olhar nito blades para o front-end, mas eu nunca poderia fazer sentido financeiro fora deles (muito caro, mais a gaiola - Olá?).

    
por 16.03.2010 / 12:08
1

Esqueceu o armazenamento em cluster - ele não funciona bem quando todo mundo precisa gravar em um banco de dados.

Talvez você possa particionar seus dados usando vários bancos de dados. Por exemplo, usuários que substring(md5sum(username) for 1)="0" se conectam ao banco de dados databasename_0 no servidor databaseserver_0 , substring(md5sum(username) for 1)="2" se conectam ao banco de dados databasename_2 no servidor databaseserver_2 .

Você pode dimensionar dessa maneira de 1 para 16 servidores. Por exemplo, para 2 servidores - os nomes DNS databaseserver_0 a databaseserver_7 apontariam para server1 e databaseserver_8 para databaseserver_f apontariam para server2 . Se um servidor é mais poderoso que o outro, você pode fazê-lo rodar mais bancos de dados.

Dessa forma, você pode escalar com facilidade e de forma barata.

    
por 16.03.2010 / 13:50