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.