VNC performance question (Adept level technomancy)

Status
Not open for further replies.

GasBandit

Staff member
Here's one that's bending my brain a bit. I've got two machines:

"Dispatch:"
Pentium 4, single core, 2.8 ghz
1gb ram
Windows Server 2003 R2
gigabith ethernet

"Skimmer:"
Core2duo E7600 dual cores @ 3ghz
2gb ram
Windows XP Professional SP3
gigabit ethernet

Dispatch has been in operation for over 4 years. Skimmer I just put together yesterday.
Attempting to use VNC on both machines... on dispatch it runs like a goddamned CHAMP. Never takes more than 5% cpu, fast, crisp, clean.

Skimmer hosts a VNC session like a fat man running uphill to catch a trolley. Frequent spikes to 100% on one core, with lesser spikes on the other. Very noticable latency between clicks and displayed results. Not running shit otherwise, while Dispatch is also acting as a heavy use fileserver. And I mean heavy. It's probably the most slammed server in the building. Both systems are using realvnc's server as a service. Also accessing both with the same client software.

What gives? Is XP pro sp3 just that much suckier than windows server 2003? I managed to improve performance on skimmer somewhat by dropping desktop color level to 16 bit... but Dispatch runs 32 bit with no performance problems whatsoever! Skimmer should be able to run circles around Dispatch in its sleep.
 
http://serverfault.com is your friend, guy.

I can only guess why. Have you tried other VNC solutions? It could be that RealVNC doesn't use very performant hooks on XP.

Is RDP comparable in speed?

Are there network bottlenecks that Skimmer has to go through which Dispatch doesn't?

Is someone using VNC to play hulu videos on their tablet to avoid paying the absurd $9/mo charge Hulu plus has?

What is the network utilization on Skimmer - even if it's not serving files it may be doing something else that's eating up bandwidth.

The XP network stack is good, so I wouldn't expect that to be a problem. You don't happen to have Dispatch setup for jumbo packets and XP not (or vice versa)?

Is a local VNC session just as slow on Skimmer as it is remotely? If so, it suggests the VNC server is using poor means to capture the screen.

Is the XP machine runing 32 bit or 64 bit? Shouldn't make much of a difference, unless the vnc server has a 64 bit binary available, in which case it could mean the 32 bit machine would be slower (slightly) than the 64 bit machine.
 

GasBandit

Staff member
http://serverfault.com is your friend, guy.

I can only guess why. Have you tried other VNC solutions? It could be that RealVNC doesn't use very performant hooks on XP.
I've attempted both RealVNC and TightVNC.. both experienced identical performance issues on this box.

Is RDP comparable in speed?
RDP doesn't seem to experience the same problems, but our engineer is a filthy mac user so it is unsuitable for a solution.

Are there network bottlenecks that Skimmer has to go through which Dispatch doesn't?
If anything, Dispatch has MORE potential bottlenecks. It's sitting on the main switch in the server room... skimmer's on my desk sharing a switch with my workstation (the one doing all the VNC client stuff)

Is someone using VNC to play hulu videos on their tablet to avoid paying the absurd $9/mo charge Hulu plus has?
Nope. This is all just visible with your standard opening/closing/moving windows in the windows UI.

What is the network utilization on Skimmer - even if it's not serving files it may be doing something else that's eating up bandwidth.
When not connected with VNC, skimmer's network utilization is nil... dispatch, however, is constantly transfering files dozens of megabytes in size (uncompressed audio).

The XP network stack is good, so I wouldn't expect that to be a problem. You don't happen to have Dispatch setup for jumbo packets and XP not (or vice versa)?
I've not fiddled with packet size on either... but someone else put together Dispatch... hrmm...

Is a local VNC session just as slow on Skimmer as it is remotely? If so, it suggests the VNC server is using poor means to capture the screen.

Is the XP machine runing 32 bit or 64 bit? Shouldn't make much of a difference, unless the vnc server has a 64 bit binary available, in which case it could mean the 32 bit machine would be slower (slightly) than the 64 bit machine.
Both are 32 bit. Need a bit more info by what you mean on local VNC session.. when I VNC into localhost I get a huge performance hit because I get an infinite nest of vnc client windows....
 
Is the XP performance tab set to give preference to background tasks? I know server tends to have that as the default, but XP prefers to prioritize applications.

Is there any way to lock the VNC server's affinity to just one core? If the OS keeps slapping the process back and forth between cores, that might explain the CPU spikes (cache sync?)

Also if the XP box has integrated graphics, you might be dealing with a memory bandwidth issue (bus contention).

Just guessin'

--Patrick
 

GasBandit

Staff member
Is the XP performance tab set to give preference to background tasks? I know server tends to have that as the default, but XP prefers to prioritize applications.
Hrm, Dispatch IS set to prioritize background/system cache... but tried those settings on skimmer and got no improvement.

Another interesting note... I VNC'd into one of my home boxes... a single core 1.91ghz athlon with 1 gig of ram, running at a much larger resolution (1680x1050 as opposed to these work machines running at 1024x768) and still got better performance than skimmer (though not as good as dispatch).

Makes me wonder... does the video card in the machine matter? The video driver on dispatch just says "Standard VGA Graphics Adapter," and my home machine is running an old Radeon 9800 pro... but Skimmer's on board video adapter made me do a double take - A Matrox g200e (probably the best darn non-voodoo video 1998 had to offer, before the very first Geforce came along next year). I wonder if that has something to do with it... hemmmm...

Is there any way to lock the VNC server's affinity to just one core? If the OS keeps slapping the process back and forth between cores, that might explain the CPU spikes (cache sync?)

Also if the XP box has integrated graphics, you might be dealing with a memory bandwidth issue (bus contention).

Just guessin'

--Patrick
Unfortuantely, it won't let me set core affinity on a system service. Doh. And you're starting to have the same idea I am it sounds like (issues with an extremely outdated onboard video controller)...
 
Is the XP performance tab set to give preference to background tasks?
Good call! You can also set task priority and force windows to give it more process time than what it would do naturally.

It looks like this is not an uncommon problem:

http://www.realvnc.com/pipermail/vnc-list/2002-August/033045.html

I suspect it's simply that the kvm drivers installed on winxp are simply not as fast/good as those installed on windows server 2003. It's quite possible that realvnc is actually performing a screen capture periodically on xp, whereas on 2003 it might be instantiating a display driver that "mirrors" the main display. In this way it doesn't have to figure out which regions of the screen are updated, it simply sees the changes as a stream, compresses them, and sends them out.

On the other hand on a fast machine comparing two 1080p display buffers to find the changes, then copying the buffer and compressing it should take less than 1/30th of a second, so that really shouldn't be the bottleneck.
Added at: 16:43
issues with an extremely outdated onboard video controller
Ah, well that could easily be it. Put a real graphics card in there and I bet you'll get better performance. You should have something lying around - even if it's technically worse than the onboard chipset, the bus contention is going to be a big problem.

Also, double check you've got the latest graphics card drivers.
 
If it is the integrated graphics, the box would probably be slow at whatever tasks even if you were sitting right at the machine. At least it shouldn't be too hard even to drop in a PCI graphics card just long enough to test.

--Patrick
 

GasBandit

Staff member
That seems to be the issue. I dropped in a PCI-e (why a PCIe motherboard has a MATROX onboard GPU I'll never understand) geforce 9500 GT and VNC runs like buttah now.

So. It's a secret to everybody.
 
Server boards like Matrox for some reason.
I assume it's some sort of Lowest Common Denominator thing.
--Patrick
 
Status
Not open for further replies.
Top