3

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?

  • Have you tried updating the Realtek NIC/mainboard firmware too? Might just be that Realtek does a crappy job with RPC calls, though. – HopelessN00b Aug 21 '12 at 17:38
  • I don't get this statement "Certainly it makes no difference if it's a megabit or gigabit network". So when you say the latest nic drivers where are you getting them from, windows update or realtek? – tony roth Aug 21 '12 at 17:38
  • Try Disabling TCP Offloading? BIOS or nic firmware update? – Bret Fisher Aug 21 '12 at 22:53
  • @HopelessN00b I've been through 3 different BIOS revisions for my motherboard and currently running the latest. There appear to be no different BIOS versions for the Realtek NIC. I would accept that Realteks just suck except that it works perfectly in Windows XP. – Matt Robson Aug 22 '12 at 10:08
  • @tonyroth Sorry for the confusion, I just meant it's not a bandwidth problem. If it's connected at 100Mbps or 1Gbps speeds, it makes no difference. The drivers were from Realtek's site. Windows update says they're already up to date. – Matt Robson Aug 22 '12 at 10:15
  • @BretFisher I've already been through all the settings on the NIC properties advanced tab, of which TCP offloading was one. The only setting that made any difference was 'Receive-side Scaling'. When I disabled this, I got about a 5-10% improvement in speed. The figures I quoted in my original message were with this already disabled. Sorry I forgot to mention this, I've been through so many things, remembering them all is not easy. – Matt Robson Aug 22 '12 at 10:18
  • So is your switch a managed or unmanaged switch, can you see if the realteks are running 100/full? – tony roth Aug 22 '12 at 14:55

1 Answers1

3

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.