Ao tentar analisar a taxa de transferência de um aplicativo de terceiros, coletamos um rastreio de WPR em dois sistemas. Um tem Sistema de Detecção de Intrusão da Symantec ativado, o outro não.
Muitas chamadas de função NDIS.SYS - ndisInterruptDpc que levam > 100µs .
Durante um período de 10s : 1.966 fragmentos de 17.273 took maior que 100µs .
A recomendação da Microsoft para DPC é não excede 100 microssegundos .
O provedor Microsoft-Windows-TCPIP mostra que tudo está usando TcpipSendSlowPath .
Eu tentei ler em caminhos lentos / rápidos, mas realmente não tenho idéia do que fazer com isso. Tudo o que posso encontrar sobre isso é sobre roteadores ou hardware dedicado e duvido que o ETW possa obter qualquer dado deles (a menos que seja passado de volta na solicitação / resposta em algum lugar?) .
A exibição Stacks mostra os pacotes passando pelo IDSvia64.sys , que é o driver da Symantec para inspeção de pacotes. Há muito mais alocação e liberação de Pool de memória por causa disso.
psping testes para largura de banda são um fator 10 mais lento.
Dito isto: o desempenho percebido da aplicação 3thparty em ambos os servidores é comparável. A única diferença tangível até o momento é que os testes de psping são muito piores no sistema com o IDS. Um conndo para mim ...
Editar
seguindo o link fornecido por @Brian, é assim que a duração do DPC se parece no sistema com o IDS ativado (verde) e em um sistema sem IDS (azul)
Estou bastante convencido de que o IDS é responsável pela maior duração das DPCs.
Se alguém puder dar algumas indicações sobre a segunda parte da questão para as quantias de TcpipSendSlowPath , pode haver algo que valha a pena investigar também.
Uma nota sobre o fato de que a quantidade de DPCs no sistema com o IDS é muito maior.