Como você observou, essa é uma estimativa muito ampla.
A grande questão é o que você usa que $ 1000 para comprar. Desde que você gere um pouco mais de memória e menos poder de processamento com um disco rígido médio, eu diria que um aplicativo razoavelmente codificado (onde razoável = principalmente usando qualquer biblioteca de abstração fornecida pela sua linguagem) com esses parâmetros deve ser capaz de lidar com cerca de 500 Usuários concorrentes. Eu teria imaginado mais, exceto pelo tamanho do conjunto de linhas (uma vez que quanto mais linhas se encaixam diretamente na RAM, menos vai para o disco que você precisa fazer mesmo para gravações imediatas).
O tipo de dados que estão nas linhas e a quantidade de RAM que você pode pagar serão absolutamente os maiores fatores neste cenário. Se você pudesse se dar com menos gravações e diminuir o tamanho da tabela indexada, eu pensaria que você poderia usar 1.000 usuários simultaneamente.
Os dois problemas que você verá:
-
A quantidade de dados que você pode armazenar em cache na RAM e, portanto, a quantidade de RAM acima do mínimo necessário para executar as operações básicas do sistema operacional e do servidor de banco de dados determinará com o que você pode se safar. Mais RAM, menos necessidades de SO e uma quantidade menor de dados úteis que devem ser mantidos na RAM para consultas e gravações, significarão a diferença entre desempenho e lotes aceitáveis e muita surra.
-
O design do seu aplicativo é absolutamente crítico aqui. Uma gravação espalhada por 500 a 1000 usuários tem um impacto enorme e enorme. Da mesma forma, se suas chamadas não forem simples e eficientes, você irá causar um acidente de trem rapidamente. Eu baseei minha estimativa em vários aplicativos mySQL que vi em jogo, com um pouco de conhecimento de como eles funcionam. Se o aplicativo tiver problemas fundamentais, talvez você nem consiga 40 usuários. Se você codificá-lo de forma eficiente e levar em conta os limites de hardware, poderá escalar além de 2.000 facilmente.