Usamos um banco de dados que possui programas cliente e servidor separados e eles se comunicam entre si usando o RPC. Temos um computador executando o Windows Server 2003 SP2 e seis estações de trabalho executando o Windows 7 Pro 32bit. A rede é uma rede simples de 100Mbps com um comutador de rede.
O computador servidor e duas das estações de trabalho possuem placas-mãe Gigabyte G31M-ES2L que possuem controladores de rede Atheros integrados. As outras workstations possuem placas-mãe Gigabyte H61MA-D2V que possuem controladores de rede Realtek integrados.
Estamos descobrindo que o desempenho do banco de dados é muito bom para os computadores com os NICs Atheros, mas muito ruim para os computadores com as NICs Realtek.
Pensando que o problema estava relacionado ao próprio programa de banco de dados, decidi testar o desempenho do protocolo RPC usando o programa RpcPing.exe.
Eu tenho usado o seguinte comando para calcular quanto tempo leva para fazer 1000 RPCs para vários computadores na rede:
rpcping -u 10 -a conecta -s [endereço ip] -i 1000
Meus resultados, em média, são os seguintes:
Atheros para qualquer Atheros: 200-250ms
Atheros para qualquer Realtek: 800-1000ms
Realtek para qualquer Atheros: 800-1000ms
Realtek para qualquer Realtek: 1100-1200ms
Os resultados são os mesmos, independentemente de o sistema operacional ser Windows Server 2003 ou Windows 7.
Como teste, instalei o Windows XP em uma das placas com um Realtek NIC e descobri que obteria 200-250ms de comunicação com qualquer Atheros NIC e 800-1000ms se comunicando com qualquer computador com Windows 7 com um Realtek NIC. Eu também testei uma instalação básica do Windows 7, apenas para ter certeza de que nenhum programa estava interferindo, e os resultados estavam ruins como de costume.
Eu tentei os drivers de NIC mais recentes, bem como várias versões anteriores e descartei qualquer problema físico com a rede. Eu também testei em outras redes e ocasionalmente encontrei resultados semelhantes aos meus. Certamente não faz diferença se é uma rede megabit ou gigabit.
Então, por favor, alguém pode explicar por que o desempenho do RPC é tão ruim para o Windows 7 com essas NICs de chipsets Realtek?