Criei um simulador para criar vários Threads e, cada um, enviar um XML a cada 10 segundos para um método do WebService.
o problema é que quando existe mais de 6500 Threads o webservice começa a ficar lento e começa a criar uma fila de envio.
Método do webservice:
[webmethod]
public string TesteRecebimento(string xml)
{
return "ok";
}
Cenários da simulação:
Cenário 01: Até 6500 Threads enviando a cada 10 segundos (alternados), tudo funciona normalmente
Cenário 02: Após 6500 Threads enviando a cada 10 segundos (alternados), começa a criar uma fila de envio e o webservice vai ficando cada vez mais lento
Cenário 03: Abrir QUATRO instâncias do simulador e cada um deles coloquei 5000 Threads enviando a cada 10 segundos (alternados) (totalizando 20000 threads) e funcionou normalmente.
Cenário 04: Alterei o simulador para criar AppDomains diferentes para cada um criar suas Threads. (coloquei cada appdomain com 5000 threads) e NÃO funcionou, o limite, independente da quantidade de Domínios ainda era 6500 threads, depois disso começava a
ficar lento
Finalmente a pergunta: Como eu faço para a minha aplicação enviar mais de 6500, ou seja, os 20000 como no cenário 03, sem que o webservice fique cada vez mais lento?