Existem dois fatores principais:
- Tamanho do seu banco de dados MySQL.
- Número de sessões simultâneas do Apache.
Idealmente, você teria memória suficiente para todo o seu banco de dados MySQL ser armazenado na memória. Além disso, você precisa de memória suficiente para (size of a single Apache/PHP process) * (number of simultaneous Apache requests)
. Quando eu estava fazendo este cálculo, nossos testes indicaram que o processo de 25MB / Apache + PHP5 era um número razoável. Combine o tamanho calculado de seu banco de dados MySQL e os requisitos estimados de memória do Apache e adicione 25% a mais para algum espaço de memória.
EDITAR: eu interpretei mal sua pergunta. Eu pensei que dizia 1K pedidos por minuto . Então, requisitos um pouco mais razoáveis:
Se o seu banco de dados for grande o suficiente para que a velocidade seja uma preocupação, você ainda deseja que ele caiba na memória. Caso contrário, seu intestino está correto, uma instância de 512M ficará bem.
EDIT # 2: No entanto, , tenha em mente que se você acabar com um DOS lento ou apenas uma pequena explosão de tráfego que o empurra para além dos 15-20 simultâneos Sessões Apache, você vai acabar em troca. E uma caixa de troca é uma caixa inútil, quase morta. Portanto, certifique-se de limitar seu MaxClients
abaixo disso. Eu sugeriria 10-15 para uma caixa de 512M.