
Eu tenho um aplicativo da web. comprei um servidor bem forte para isso. As especificações do servidor estão abaixo: CPU: DUAL E5-2620 RAM: 32 GB DDR3 HDD: 2 x 300 GB SAS 10K Rede: Internet de 100 Mbps/10 TB.
Especificação do servidor Web: Apache/nginx/PHP Banco de dados: MySQL
Agora meus usuários estão ficando chapados dia após dia. Meu servidor não tolera tanta pressão. e o tempo de espera está aumentando. Então pensei em separar o MySQL e o servidor Web em dois servidores idênticos para equilibrar a carga da CPU. Agora que descobri com a separação mysql e php, terei mais um problema abaixo!
- Aguardando transferência de rede: tenho esta consulta MySQL: "SELECT * FROM table" Se a tabela tiver mais de 500 MB de dados. Com a minha velocidade de conexão, levará vários segundos para obter essa tabela pela rede. e é apenas para um usuário com uma conexão, mas multiplica por 10 conexões de um usuário e mais de 100 usuários online.
O exemplo acima é apenas um exemplo, mas os dados reais mostram as informações abaixo para 100 usuários online ao mesmo tempo:
Tráfego + ø + por hora
Recebido+ 14,7 GiB + 201,4 MiB
Enviado+ 429,4 GiB + 5,7 GiB
Total+ 444,2 GiB + 5,9 GiB
Parece que separar é algo impossível para minha aplicação web. Agora não sei o que fazer para equilibrar a carga nesses dois servidores sem ter esse grande problema. Qual pode ser uma maneira alternativa de equilibrar a carga da minha CPU sem problemas de latência (pelo menos com menos problemas)?
*****aviso: a consulta é um exemplo. minhas consultas são bastante otimizadas, mas meu aplicativo é muito mais complicado, portanto, interage muito com o banco de dados. Mas as informações do mysql ainda mostram dados de 6GiB transferidos.
Responder1
Se você otimizou o aplicativo da web para não usar consultas SQL ridiculamente ineficientes, provavelmente poderá colocá-las de volta na mesma caixa com carga muito menor. Não há razão para que todo usuário leia a tabela inteira todas as vezes. Consultas e índices adequados provavelmente proporcionarão um enorme impulso aqui - muito mais do que apenas adicionar mais hardware a eles.
Caso contrário, eles fabricam adaptadores Ethernet de até pelo menos 10 Gb/s agora. Ainda mais rápido para alguns dos tipos mais exóticos. Um link mais rápido entre os servidores ajudará. Mas não tanto quanto consultas SQL adequadas.