O título desta pergunta representa minha principal preocupação, mas se você ler além da seção pergunta , você encontrará informações sobre nossa configuração ... que podem ou não ser relevantes / útil.
Pergunta
Nós estamos testando o nosso aplicativo usando Gatling , e estamos executando o cenário Gatling em uma máquina única . Estamos descobrindo que nossa aplicação é capaz de lidar com uma alta carga gerada pela ferramenta de estresse; no entanto, não é capaz de lidar com uma carga relativamente baixa de usuários reais.
A minha pergunta é: que tipo de otimização ou simplificação do sistema operacional / rede ocorre quando solicitações simultâneas são feitas de uma única máquina / sistema operacional para um aplicativo, versus solicitações simultâneas de várias máquinas (por exemplo, usuários regulares usando seus navegadores da web)?
Antecedentes
Temos um aplicativo Tomcat atrás do Apache via AJP, que está por trás de um Citrix Netscaler via porta 80 (também estamos planejando tirar o Apache da equação, mas isso é outro problema ...).
Nosso aplicativo foi paralisado sob carga relativamente baixa (conexões CLOSE_WAIT acumuladas entre o apache e o tomcat) e estamos no processo de teste de carga para resolver o problema. Deadlocks, ocorridos em nossa instância do SQLServer, estavam aparecendo com bastante frequência e então decidimos começar por lá. Para replicar o problema e testar nossas correções, usamos uma única máquina para gerar carga usando o Gatling.
Quando começamos, pudemos replicar os deadlocks de maneira confiável usando a ferramenta. Depois que fizemos algumas otimizações, os deadlocks foram embora, e também as conexões CLOSE_WAIT. Em seguida, colocamos o aplicativo em uma carga com a qual ficamos muito felizes e ele correu sem nenhum grande problema.
Infelizmente, quando as correções foram aplicadas ao sistema de produção, ainda estávamos vendo o mesmo comportamento original. O que me leva a pensar se a carga gerada pela ferramenta de estresse não é uma boa representação do que realmente está acontecendo no mundo real, devido a ela ter origem em uma única fonte, em vez de muitos clientes diferentes espalhados pela Internet. .