Três recomendações.
1.) Considere o uso do HA Proxy em nginx para o balanceamento de carga.
[EDITAR]
Coisas a serem consideradas ao considerar o HA Proxy em HttpUpstream:
HttpUpstream :
- "Este módulo fornece balanceamento de carga simples (round-robin e IP do cliente) em servidores de back-end".
Proxy HA:
- Balanceamento de carga TCP
- Recarregamento a quente
- Enfileiramento de conexão
- Página de estatísticas abrangente
- Comunicação de soquete, incluindo capacidade de marcar servidores como inativos
- ACL's
- Balanceamento de carga "fixo"
- etc
- etc
- etc
O HA Proxy é realmente o IMO de balanceador de carga gratuito.
[EDIT /]
2.) Olhe para o cache. Consultas de produção de perfil com uma amostra de dados de produção (ou semelhantes). Atingir o banco de dados 20k vezes por segundo poderia destruir seus servidores de banco de dados. São 1,7 BILHÕES de transações por dia, presumindo que cada solicitação envolve apenas UMA transação. Isso é muito. Squid, memcached, redis, etc podem salvar seu bacon aqui se o cache é possível.
3.) Eu mencionei o perfil?
É difícil sugerir um curso de ação sem conhecer os padrões de uso de recursos dos aplicativos. Por exemplo, você pode achar que terá que colocar o MySQL em duas caixas dedicadas para acompanhar a demanda de consulta. Por outro lado, o proxy HA é extremamente eficiente e cpu eficiente. Provavelmente, você poderia ter sua configuração HA Proxy compartilhando recursos em dois de seus web heads.