Compreendendo o impacto no desempenho da rede de 32 bytes por solicitação

1

Minha empresa está usando redis em um caminho crítico de desempenho razoável. Um servidor nginx chama uma vez por solicitação. A chamada em si tem vários argumentos, que atualmente são como 80 bytes. Essa chamada passa pela rede para redis, que passa os argumentos para um script de lua que foi carregado e, em seguida, toma uma decisão e a retorna.

Meu chefe acha que adicionar uma string adicional de 32 bytes a esses argumentos é inaceitavelmente ruim comparado a codificar a string no script lua (o que é uma porcaria por outros motivos), porque "se obtivermos 50k solicitações em um segundo, isso é 1,6GB de tráfego de rede adicional nesse segundo ". Minha intuição é que isso não é uma preocupação. O tráfego é de uma instância do EC2 para uma instância do ElastiCache, e acho que devido ao modo como os pacotes funcionam e quão pequena a solicitação já é, os 32 bytes extras dificilmente incorrerão em custos de processamento significativos na pilha de rede em ambas as extremidades. Estou totalmente errado?

    
por Personman 24.10.2016 / 23:02

1 resposta

4

Desempenho
O desempenho de todo o aplicativo não pôde ser afetado. Você pode gastar um tempo significativo fazendo micro-benchmarking. No entanto, como você aumenta uma solicitação em um só lugar, ela pode ter um efeito cascata em todo o aplicativo. Contanto que você não aumente o número de pacotes IP, o impacto no desempenho poderá ser mínimo se a latência da rede for alta. A linha de fundo, benchmark. Deixe no código a opção de poder escolher qual implementação você usará no tempo de execução (por exemplo, uma opção de alternância).

Qualidade do código
Geralmente, é mais importante ter uma boa qualidade de código e ter espaço para expandir sua aplicação do que se limitar. Você pode projetar mais tarde um filtro que irá minimizar, compactar, armazenar em cache o tráfego para os redis, que ajudará você a ganhar mais velocidade do que uma pequena otimização.

    
por 24.10.2016 / 23:19