Search code examples
performanceweb-servicesiis-6iis-8windows-server-2012

Windows Server 2012 IIS8 Performance over Server 2003 IIS6, Sporadic slowness with WebService


We had a few .NET 1.1 projects hosted on IIS6 in Server 2003. I was tasked with porting these projects to .NET 4.0 and host them on new Server 2012 VM's. Ported the code and getting it to run on Server 2012 IIS8 was no problem, but I started seeing performance problems throughout the day and they would over time resolve themselves. I have the APP Pools set to recycle every 4 hours, so I can't see it being an unhealthy app pool.

The config of the app pool is as follows;

Managed Pipeline Mode: Classic Mode Start Mode: Always Running Enable 32-bit Applications: True Memory Limit: 0 (Unlimited)

The OS config is as follows;

Server 2012 Dedicated web server, no other services running. 4 virtual processors 10gb Ram 10gb Virtual NIC

For the webservice itself, its a simple webservice that hits a database and it also calls another webservice hosted on the same web server. I have the hostname listed in the host file, so its not doing a DNS lookup. The database is pretty much sitting idle. To give you an idea on how often this service is utilized, we had about 40k web service calls yesterday.

I wrote a program that tested the web service every 10 seconds for a 24 hour period. The results were kind of interesting. The times listed below are when the response times were slow and the "slow" was always consistent. The slow response times were about 6000ms, or 6 seconds. The time in between the times listed below were 200ms, or .2 seconds.

8:18AM - 8:36AM – 18 minutes

9:02AM - 9:10AM – 8 minutes

9:36AM - 9:47AM – 11 minutes

10:17AM - 10:26AM – 9 minutes

10:41AM - 10:56AM – 14 minutes

11:16AM - 11:22AM – 6 minutes

11:48AM - 11:56AM – 8 minutes

12:23PM - 12:31PM – 8 minutes

12:53PM - 1:00PM – 7 minutes

1:07PM - 1:19PM – 12 minutes

1:41PM - 1:47PM – 6 minutes

2:03PM - 2:52PM – 49 minutes

3:15PM - 3:34PM – 19 minutes

3:57PM - 4:02PM – 6 minutes

4:20PM - 4:26PM – 6 minutes

4:35PM - 4:56PM – 21 minutes

5:17PM - 5:25PM – 8 minutes

6:02PM - 6:16PM – 14 minutes

6:49PM - 7:00PM – 11 minutes

7:41PM - 7:55PM – 14 minutes

8:36PM - 8:51PM – 16 minutes

9:31PM - 9:45PM - 14 minutes

10:26PM - 10:41PM – 15 minutes

11:25PM - 11:41PM – 16 minutes

12:28AM - 12:45AM – 17 minutes

1:34AM - 1:53AM – 19 minutes

2:42AM - 3:02AM – 20 minutes

3:49AM - 4:08AM – 19 minutes

5:01AM - 5:15AM – 14 minutes

6:03AM - 6:22AM – 19 minutes

7:12AM - 7:28AM – 16 minutes

8:07AM - 8:18AM – 11 minutes

I can't find the culprit of the slow downs. We did not have any performance problems hosting on iis6, so it can't be the database.

Thoughts?


Solution

  • I did figure this out.

    Vmware has multiple types of NIC's to choose from. The culprit was the the VMXNET 3 network adapter. For whatever reason, it doesn't play well with server 2012. I change the NIC to E1000 and it's been running fine since!