R
Rick
A prior thread on this topic created more results, so I recompiled all the
new and old data into a easier to read format. Your thoughts are encouraged.
I ran Microsoft's free "Web Application Stress" tool to get a performance
base for asp.net/c#. I'm thinking once I know what server resources a dummy
asp.net page will consume under load, then I can really determine the load
costs of added c# code and controls.
Network:
WAS ran on a server with a t3 Internet connection to the test server.
Bytes Sent Rate (in KB/s): 75.93
Bytes Recv Rate (in KB/s): 311.78
Test Server:
Windows 2000 SP 4
~1000 MHz AMD CPU
1 GIG RAM
IIS 5, no logging
Pages Tested:
a) dumb.htm 20 lines of super simple html text, no tables, css etc.
b) dumb.asp same as A just extension changed.
c) dumb.aspx same exact text as in dumb.htm (no asp controls added), but
created in VS with code behind cs file that I didn't alter.
d) dumb2.aspx with view state, etc turned off, details below.
WAS Settings:
All default except:
Stress Level (threads) 30 [sockets remained 1 per thread]
Test Run Time: 5 mins
Number of test clients: 1
RESULTS:
Dumb.htm
CPU Averaged 21%
Number of hits: 95276
Requests per Second: 317.58
TTFB (Time to First byte) Avg: 48.60
TTLB (Time to Last byte) Avg: 48.62
Dumb.asp
CPU Averaged 54%
Number of hits: 90880
Requests per Second: 302.94
TTFB (Time to First byte) Avg: 52.63
TTLB (Time to Last byte) Avg: 52.66
Dumb.aspX
CPU Averaged 94%
Number of hits: 79973
Requests per Second: 266.58
TTFB (Time to First byte) Avg: 62.25
TTLB (Time to Last byte) Avg: 66.28
Dumb2.aspX*
CPU Averaged 90%
Number of hits: 83283
Requests per Second: 277.61
TTFB (Time to First byte) Avg: 61.95
TTLB (Time to Last byte) Avg: 61.98
* <%@ Page language="c#" Codebehind="Page2.aspx.cs" AutoEventWireup="false"
Inherits="Page2.Page2" EnableSessionState="False" enableViewState="False"
debug="False"%>
Then I ran dump.aspX on a Windows 2003 Server, ~1800 MHz AMD CPU and 500
Megs RAM.
Dumb.aspX
CPU Averaged 49%
Number of hits: 89482
Requests per Second: 297.81
TTFB (Time to First byte) Avg: 51.59
TTLB (Time to Last byte) Avg: 51.66
Are these results typical? What am I missing, it seem odd that asp.net is
consuming some much cpu to return a compiled page that does nothing?
Rick
P.S. Global.asax does does nothing other than what VS.NET created.
Below is the web.config file:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.web>
<compilation
defaultLanguage="c#"
debug="false"
/>
<customErrors
mode="Off"
/>
<authentication mode="None" />
<authorization>
<allow users="*" /> <!-- Allow all users -->
<!-- <allow users="[comma separated list of users]"
roles="[comma separated list of roles]"/>
<deny users="[comma separated list of users]"
roles="[comma separated list of roles]"/>
-->
</authorization>
<trace
enabled="false"
requestLimit="10"
pageOutput="false"
traceMode="SortByTime"
localOnly="true"
/>
<sessionState
mode="InProc"
stateConnectionString="tcpip=127.0.0.1:42424"
sqlConnectionString="data
source=127.0.0.1;Trusted_Connection=yes"
cookieless="false"
timeout="20"
/>
<globalization
requestEncoding="utf-8"
responseEncoding="utf-8"
/>
</system.web>
</configuration>
new and old data into a easier to read format. Your thoughts are encouraged.
I ran Microsoft's free "Web Application Stress" tool to get a performance
base for asp.net/c#. I'm thinking once I know what server resources a dummy
asp.net page will consume under load, then I can really determine the load
costs of added c# code and controls.
Network:
WAS ran on a server with a t3 Internet connection to the test server.
Bytes Sent Rate (in KB/s): 75.93
Bytes Recv Rate (in KB/s): 311.78
Test Server:
Windows 2000 SP 4
~1000 MHz AMD CPU
1 GIG RAM
IIS 5, no logging
Pages Tested:
a) dumb.htm 20 lines of super simple html text, no tables, css etc.
b) dumb.asp same as A just extension changed.
c) dumb.aspx same exact text as in dumb.htm (no asp controls added), but
created in VS with code behind cs file that I didn't alter.
d) dumb2.aspx with view state, etc turned off, details below.
WAS Settings:
All default except:
Stress Level (threads) 30 [sockets remained 1 per thread]
Test Run Time: 5 mins
Number of test clients: 1
RESULTS:
Dumb.htm
CPU Averaged 21%
Number of hits: 95276
Requests per Second: 317.58
TTFB (Time to First byte) Avg: 48.60
TTLB (Time to Last byte) Avg: 48.62
Dumb.asp
CPU Averaged 54%
Number of hits: 90880
Requests per Second: 302.94
TTFB (Time to First byte) Avg: 52.63
TTLB (Time to Last byte) Avg: 52.66
Dumb.aspX
CPU Averaged 94%
Number of hits: 79973
Requests per Second: 266.58
TTFB (Time to First byte) Avg: 62.25
TTLB (Time to Last byte) Avg: 66.28
Dumb2.aspX*
CPU Averaged 90%
Number of hits: 83283
Requests per Second: 277.61
TTFB (Time to First byte) Avg: 61.95
TTLB (Time to Last byte) Avg: 61.98
* <%@ Page language="c#" Codebehind="Page2.aspx.cs" AutoEventWireup="false"
Inherits="Page2.Page2" EnableSessionState="False" enableViewState="False"
debug="False"%>
Then I ran dump.aspX on a Windows 2003 Server, ~1800 MHz AMD CPU and 500
Megs RAM.
Dumb.aspX
CPU Averaged 49%
Number of hits: 89482
Requests per Second: 297.81
TTFB (Time to First byte) Avg: 51.59
TTLB (Time to Last byte) Avg: 51.66
Are these results typical? What am I missing, it seem odd that asp.net is
consuming some much cpu to return a compiled page that does nothing?
Rick
P.S. Global.asax does does nothing other than what VS.NET created.
Below is the web.config file:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.web>
<compilation
defaultLanguage="c#"
debug="false"
/>
<customErrors
mode="Off"
/>
<authentication mode="None" />
<authorization>
<allow users="*" /> <!-- Allow all users -->
<!-- <allow users="[comma separated list of users]"
roles="[comma separated list of roles]"/>
<deny users="[comma separated list of users]"
roles="[comma separated list of roles]"/>
-->
</authorization>
<trace
enabled="false"
requestLimit="10"
pageOutput="false"
traceMode="SortByTime"
localOnly="true"
/>
<sessionState
mode="InProc"
stateConnectionString="tcpip=127.0.0.1:42424"
sqlConnectionString="data
source=127.0.0.1;Trusted_Connection=yes"
cookieless="false"
timeout="20"
/>
<globalization
requestEncoding="utf-8"
responseEncoding="utf-8"
/>
</system.web>
</configuration>