Picking a CPU for a VirtualHere server (single thread vs multi thread)

Months ago, I was trying to push the limits of speed with my VirtualHere setup but I'm running into a problem with a high-performance device.

OS: Debian 9.3 4.9.0-8-amd64
VirtualHere Server 4.0.0
CPU: Xeon E5-1620 v2 @ 3.70GHz

My Windows 10 client host is directly connected to the server through 10 GigE network cards.

I hooked up a NI USB-8502 device to the server and connected through the client, and tried to run a loopback test on the target device. This device is pretty sensitive to latency. The test is probably about 30 seconds long. Interestingly, at some point I see the expected packets that I'm writing to the device flip and arrive in the wrong order. The CPU activity that I can monitor on the server shows one of my cores go from a slow idle at about 1 GHz suddenly clock up over 3 GHz and then drops back to idle within a few seconds.

Any idea on what I could try to reduce my bottlenecks in the setup? I figured that giving myself the direct 10 GigE connection would rule out the network, but I'm wondering if my server CPU is the bottleneck here. So that being said, I have a couple of questions:

1. Have you ever seen any cases where a slow CPU was actually causing performance problems with a device connection? I'm wondering if throwing a faster CPU at this could help. I have access to some faster PCs to try.
2. Is VirtualHere set up to use a single thread for all connections? A single thread per device? Multi threading? That just gives me an idea about what type of CPUs I should test out.

Thanks!
Chris

#2

Yes virtualhere will use all CPU/cores, it is heavily multi-threaded.

What are you ping times (latency)? Have a look in the latency graph by right clicking USB Hubs->About->statistics

I would think that device just sends simple control/bulk/interrupt requests and does not tax the cpu.

Im surprised it uses much of the cpu at any time. Any chance of using 5.x kernel? thats the first thing i would suggest

#3

That's a good point. I'll try a 5.x kernel first. It's great to know that it's multi-threaded.

Will the VirtualHere server give me full performance for a single device in trial mode? I wasn't able to get a 5.x kernel running on the existing Debian server (the backported 5.4.0 kernel I tried fails to boot on my hardware), but I could test it out on another machine running 5.x and if everything looks good, I'll buy a new VirtualHere license for it.

#4

Yes it will give good performance in trial mode. The optimized build of the server is particularly useful for slower cpu's like slower arms and mips. x86_64 cpus are already fast and the generic build is almost as fast as the optimized build