System Requisitos de aplicações pesadas de gravação atendendo centenas de solicitações por segundo

3

OBSERVAÇÃO: Eu sou um desenvolvedor de PHP autodidata que tem pouca ou nenhuma experiência em gerenciar servidores da Web e de banco de dados.

Estou prestes a escrever um sistema de atendimento baseado na Web para uma base de usuários muito grande. Espero que cerca de 1.000 a 1.500 usuários conectados ao mesmo tempo façam pelo menos uma solicitação a cada 10 segundos ou mais por um período de 30 minutos por dia, três vezes por semana. Portanto, são mais ou menos 100 solicitações por segundo ou, na pior das hipóteses, 1000 solicitações em um segundo (média de 16 solicitações simultâneas? Mas pode ser maior, dado o curto período de tempo que os usuários farão essas solicitações. cruza os dedos para evitar 100 solicitações simultâneas ).

Espero dois tipos de transações: uma transação local (não referente a local network) e foreign . As transações local basicamente baixam userdata em sua localidade e armazenam em cache por 1 a 2 semanas. Os equests de presença provavelmente serão apenas duas sequências numéricas: userid e eventid . foreign transações são para participação de pessoas que não pertencem à localidade atual. Isso transmitirá os seguintes dados: (numeric) locality_id , (string) full_name . Ambas as solicitações são feitas no Ajax, portanto, nenhum dado HTML incluído, apenas JSON. Ambos os tipos de solicitações esperam, no mínimo, uma única resposta numérica do servidor. Acho que haverá uma divisão 50-50 na frequência de local e foreign transações, mas há apenas alguns bytes de diferença nos tamanhos dessas transações.

A partir deste momento, o userid pode alcançar apenas 6 dígitos e eventid são 4 a 5 dígitos inteiros também. Espero que minha tabela users tenha pelo menos 400k linhas, e a tabela event tenha até 10k linhas, uma tabela locality com pelo menos 1500 linhas e minha tabela de presença principal aumente em 400k linhas ( com base no número de usuários na tabela users ) por dia durante 3 dias por semana (1,2 milhões de linhas por semana).

Para mim, isso parece grande. Mas isso é realmente tão grande assim? Ou isso pode ser tratado por um único servidor (não tenho certeza sobre as especificações do servidor, já que provavelmente vou aproveitar de um VPS da ServInt ou outros)? Eu tentei ler em várias configurações de servidor Heatbeat , DRBD , configurações mestre-escravo. Mas eu me pergunto se eles são realmente necessários. A tabela users adicionará cerca de 500 mil linhas por semana.

Se isso não puder ser tratado por um único servidor, então, se eu for escolher uma topologia de replicação do MySQL, qual seria a melhor configuração para este caso? Desculpe, se eu soar vago ou a questão é muito ampla. Eu só não sei o que perguntar ou o que você quer saber neste momento.

    
por Rolando Cruz 27.07.2012 / 12:31

2 respostas

0

eu começaria com alguns white papers do oracle / mysql. eles geralmente têm detalhes profundos quando se trata de benchmarking A partir deste pesquisa você pode obter uma rápida visão geral sobre as capacidades do servidor mysql e do hardware relacionado a tais performances [os três primeiros resultados são bons para começar].

    
por 29.08.2012 / 17:29
0

Temos algumas perguntas canônicas sobre o teste de carga e o planejamento de capacidade

Como você faz testes de carga e planejamento de capacidade para sites da Web?

Como você faz testes de carga e planejamento de capacidade para bancos de dados?

Você pode me ajudar com meu planejamento de capacidade?

Basicamente, você precisa obter algum monitoramento e aplicar o método científico.

    
por 16.01.2015 / 21:37