1

I have a webpage (ASP.NET 4.0 / MVC 4).

On my development machine (i5-2500 3.3 8GB Win7 VS2010 SP1 Fujitsu Esprimo P700) the page performs with 160 requests/sec on devenv webserver on my machine. The page performs with 250 requests/sec on my local IIS 7.5. (uncompiled web)

The page performs with 20 requests per second on a 16core 32gb ram production server (Fujitsu RX-300 w2k8 rc2 IIS 7.5). (compiled web)

Why? I think it's the IIS configuration but i can't figure out whats the problem. The page runs with 1 worker process on both machines. Web garden is not an option (it helps but the app isnt compatible with)

EDIT:

The driver versions of http.sys and tcpip.sys are same on prod and dev. The tests were always run on the machines itsself on localhost. The CPU usage on prod is 95% @ 20 req. On dev 80% @ 250 req. (32 threads) there is no db or io involved in this test. I opened the server, and yes there are really 16 xeon cores inside on prod.

Robert P.
  • 119
  • 5
  • You need to use more CPUs on the given IIS worker - check out the advanced settings. And the benchmark you need to run with multiple connections (like twice the number of cores). – Andrew Smith Oct 23 '12 at 16:27
  • i ran 32 thread on jmeter to test the performance. the app pool has cpu limit set to 0, cor affinity is off. – Robert P. Oct 23 '12 at 16:38
  • What are your versions of tcpip.sys and http.sys? – Greg Askew Oct 23 '12 at 17:03
  • tcpip.sys is 6.1.7601.17939 – Robert P. Oct 23 '12 at 17:08
  • http.sys is 6.1.7601.17514 – Robert P. Oct 23 '12 at 17:09
  • I would not bother with pursuing this unless it occurs on the most recent versions of those drivers. An updated http.sys .21866 is available in KB 2634328. An updated tcpip.sys .22108 is available in KB 2738401. You may also want to benchmark this using localhost, which does not use the network stack. – Greg Askew Oct 23 '12 at 17:27
  • I would also check the .net installation (e.g. repair it), as well cpu usage during the test, if it's eaten or not. Also you can try to benchmark with "keep alive" option on and see the difference. It might be also because it runs SSL, or performs some other i/o operations which are slowing down (or database). – Andrew Smith Oct 23 '12 at 19:29
  • The driver versions are same on prod and dev. The tests were always run on the machines itsself on localhost. The CPU usage on prod is 95% @ 20 req. On dev 80% with 250 req. (32 threads) there is no db or io involved in this test. i opened the servers, and yes there ar really 16 xeon cores inside on prod. – Robert P. Oct 24 '12 at 10:12
  • I installed a virtual w2k8 r2 inside my dev box. Performs as expected. I think that IIS, SP's, ASP.NET were not installed in the correct order and some binary mesh up slows down the systems. I format c: and reinstall the web server now. – Robert P. Oct 24 '12 at 14:01
  • I'm voting to close this question as off-topic because it has been answered. – Greg Askew Jul 04 '15 at 13:02

2 Answers2

0

This may sound ridiculous, but try running IIS in 32bit mode, i know situation, when this helped to reduce CPU consumption by 50%.

http://www.iis.net/learn/web-hosting/web-server-for-shared-hosting/32-bit-mode-worker-processes

Andrei Mikhaltsov
  • 3,027
  • 1
  • 23
  • 31
0

I solved the Problem.

The 12 Cores made the server slow. I ran 1 instance of w2k8 r2 on the system. If i put 6 virtual w2k8r2 machines with 2 cores each the situation is completely different.

:-)

Robert P.
  • 119
  • 5