3

We recently moved our ASP.NET 4.0 application from Windows2003 x64/IIS 6 VM to a new Windows 2008 x64 RC2/IIS 7(7.5) VM. The resources are identical 4GB Memory, 4 CPU, both live on the same ESX host. I've attempted to match every conceivable iis configuration setting, caching, compression etc. between the two. Nevertheless, according to external performance monitoring by both alertsite and gomez, response times have doubled since cutover.

"Time to first byte" averages have increased by a few tenths of a second across the board. "Content" delivery time has increased by a full second across the board. "Full page download" has increased by several seconds across the board.

To confound matters further, we started with a two-node windows2008 farm, using ncache to cluster session, and a brocade load balancer, and saw a 2-5x increase in response times. We then dropped back down to just one server and bypassed the Load balancer to get back to a 2x increase in response times.

The fact that the load balancer made things worse, and that the bulk of the response time increase was in the content/base-page and fullpage download metrics, makes me think its something network related, or at least at the IIS level, where it simply isn't responding as fast as IIS6.

I'm hoping I've overlooked some key setting, because I can't fathom how upgrading both the OS and the doubling the resources (adding second node) resulted in worse performance.

I realize this isn't much information to go on, so I'm just looking for any suggestions about where to look or how to diagnose this. Suggestions on which perfmon counters to look at, what to look for and what they mean would help. Wild guesses welcome.

JNappi
  • 133
  • 4
  • Is the application running in 64-bit mode? Have you checked the application pool settings? –  Sep 15 '11 at 22:51
  • @James, thanks for the question, I should've mentioned that. The app pool is running in 32bit mode, same as it was on IIS6. –  Sep 15 '11 at 22:55

2 Answers2

2

Updating the answer as the blog is no longer in service. The answer here surrounded turning of TCP Offloading for the network adapter via the advanced adapter settings (both IP4 and IP6). Back in 2011 when this question was asked, many of the network drivers for the NIC cards did not handle this operation well and slowed down the operating systems dramatically. This typically doesn't present itself any longer as the drivers and virtualization software has improved dramatically since then.

tsells
  • 136
  • 4
  • No problem. I disable this feature on all my VM's and Host machines for both VMware and Hyper V. It tends to do more harm then good. –  Sep 16 '11 at 00:22
  • It turned out to be NIC duplexing issue on the firewall which was different between the two server subnets. I'm gonna give you credit since you were one the right track. – JNappi Sep 19 '11 at 15:00
  • @JaredThirsk It would have been rather easy to just ask for the answer to be updated. This was from 2011 (7 years ago). Much has changed this since then. You will typically get more bees with honey, not vinegar. – tsells Jan 31 '18 at 17:05
  • Yeah I was dramatic. Though I picture more of a giant downvote hammer than vinegar, and a hammer made of candy. In recent years link-only answers on stackexchange seem to get pointed out quickly -- I was fearing this answer was lost. Anyway, thanks for adding the information to your answer! – JaredThirsk Feb 02 '18 at 02:35
0

Are you running the app pool in "Classic" mode or "Integrated" mode? There is some overhead introduced by running in "Classic" mode that you may want to look into. You can read more about it here. Note that your app may not be able to just run in "Integrated" mode without some slight changes to work harmoniously within the IIS7 pipeline.

All this said, I'm not sure it would explain your situation exactly... especially if you are truly talking about serving up static file system based content. If you have custom handlers in the middle though, it could certainly be related.

Drew Marsh
  • 113
  • 5
  • We're running in integrated mode. And yes we had to make a few tweaks to the global.asax to accomplish this. But custom handlers is a good suggestion about where to look. We do have a urlrewriter, not sure why that would behave differently in ii7 but its a lead. –  Sep 15 '11 at 23:09