Remote Procedure Call (RPC) Performance in a Local Area Network

performancerealtekrpcwindows 7

We use a database that has separate client and server programs and they communicate with each other using RPC. We have one computer running Windows Server 2003 SP2 and six workstations running Windows 7 Pro 32bit. The network is a simple 100Mbps network with one network switch.

The server computer and two of the workstations have Gigabyte G31M-ES2L motherboards which have integrated Atheros network controllers. The other workstations have Gigabyte H61MA-D2V motherboards which have integrated Realtek network controllers.

We are finding that the database performance is very good for the computers with the Atheros NICs but very poor for the computers with the Realtek NICs.

Thinking that the problem was to do with the database program itself, I decided to test the performance of the RPC protocol by using the program RpcPing.exe.

I have been using the following command to time how long it takes to do 1000 RPCs to various computers on the network:

rpcping -u 10 -a connect -s [ip address] -i 1000

My results, on average, are as follows:

Atheros to any Atheros: 200-250ms
Atheros to any Realtek: 800-1000ms
Realtek to any Atheros: 800-1000ms
Realtek to any Realtek: 1100-1200ms

The results are the same, regardless of whether the operating system is Windows Server 2003 or Windows 7.

As a test, I installed Windows XP on one of the boards with a Realtek NIC and found that I would get 200-250ms communicating with any Atheros NIC and 800-1000ms communicating with any Windows 7 computer with a Realtek NIC. I also tested a basic install of Windows 7, just to make sure no programs were interfering with it, and the results were as bad as usual.

I have tried the latest NIC drivers as well as several earlier versions and have ruled out any physical problem with the network. I have also tested it on other networks and occasionally find similar results to mine. Certainly it makes no difference if it's a megabit or gigabit network.

So please can anyone offer an explanation as to why RPC performance is so poor for Windows 7 with these Realtek chipset NICs?

Best Answer

I sent an email to Realtek over a week ago but never expected a reply. Surprisingly they've just got back to me. They asked me to install the Windows XP driver on Windows 7. This fixed the RPC performance problem but broke internet access.

They then asked me to re-install the Windows 7 driver and try disabling 'Interrupt Moderation' on the advanced settings of the NIC properties page. This fixed it!

Apparently disabling 'interrupt moderation' increases the performance of your network card at the cost of extra CPU usage.

I presume I must have missed this setting when I went through testing each one in turn or perhaps a certain combination of those settings causes disabling 'interrupt moderation' to have no effect. Regardless, it's sorted now.

The interesting thing is that the Atheros chipsets have this setting enabled but don't suffer from the RPC performance problem.

Thanks to those who replied. I appreciate you taking the time to offer suggestions.