Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I have a single server (2x4 core CPUs, 32GB ram), that is a Windows Server 2012 Hyper V host, and it hosts two guest VMs (also Windows Server 2012 instances). One of them is a web server, the other is a SQL server.

When hitting a page that loops over 50 records, there is noticeable latency. I capture/report the timings of each iteration on the loop, and each iteration is about 20-30 milliseconds. Of course, this amounts to over a second of latency for the whole loop.

I thought maybe SQL needed to be tuned, but running profiler on it, the queries are showing almost 0 duration, so it seems the bottleneck is in transit between the two VMs.

I have both VMs configured to use the actual NIC (vs. using a VNIC), so maybe that's part of my problem.

Also, this is a classic ASP site, so it's using the SQL OLE DB provider, and I'm wondering if that is part of the problem.

This is a new server setup, from an existing Windows 2003/IIS6 server setup where both web and DB run on the same server instance (no virtualization). On that setup, there is no such latency when looping over the cursor like this. But there are so many variables, I'm not sure where to start ruling things out.

share|improve this question
    
You did not mention CPUs that I can see. SQL and NUMA memory latency may be of interest - I really am not sure. We've had this very problem. –  jim mcnamara Jun 23 '13 at 0:13
    
Well, I mentioned 8 total cores. It's two 4-core CPUs. I'll check out that link, thanks. –  Jerad Rose Jun 23 '13 at 1:10
    
@jimmcnamara wouldn't NUMA memory latency show up on profiler? –  Jerad Rose Jun 23 '13 at 1:50
    
Using a air of dedicated v-nics on a dedicated v-switch is trivial to set up and try. I suggest starting there. –  longneck Jun 23 '13 at 2:49
add comment

2 Answers

up vote 0 down vote accepted

In my case, this was a false alarm. I thought the latency was unique to this new Hyper-V setup, but it was actually also happening on the live server as well. It was due to a change that was made to our code recently, and the issue had not been discovered in live yet.

share|improve this answer
add comment

The reason for this sort of latency within two virtual machines within the same network is do to the fact that all the same networking still comes into apply. You don't want to be looping through records going to the SQL Server for each record, but instead download the entire record set at once to the webserver then process everything at once.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.