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.