Re: ASP.Net Performance Problems

From: Sam Santiago (ssantiago_at_n0spam-SoftiTechture.com)
Date: 12/14/04


Date: Tue, 14 Dec 2004 05:29:56 -0800

My previous message will be useful then - you need a performance profiler
to determine which pages/classes in your ASP.NET application are responsible
for the high CPU usage. It could be as simple as tuning a single class, but
until you do some profiling you will just be shooting in the dark. Many of
the profilers out there offer a free trial period. Might be long enough to
find your problem. Good luck.

Thanks,

Sam

-- 
_______________________________
Sam Santiago
ssantiago@n0spam-SoftiTechture.com
http://www.SoftiTechture.com
_______________________________
"Neal" <Neal@discussions.microsoft.com> wrote in message 
news:DF9625EB-4F79-48E9-B8E8-597440CCB948@microsoft.com...
> Hi,
> I just received the results etc
> They are
>
> The stress testing was conducted over a week long period using the 
> Microsoft
> Web Application Stress 1.1 tool.  During the testing I have monitored both
> the webserver (DEVWEB) and the database server (DEVDB).
>
> Web server :1 x 350 MHz Pentium...{May Explain a lot}
> 512 Mb RAM
> 28GB Hard disk
> Windows 2000 Server SP4IIS 5.0
>
> 10 Concurrent Users exercising all urls,
>
> Web Server
>
> Disk I/O - OK
> Memory utilisation - OK
> CPU - overloaded
>
> DB Server
>
> Disk I/O - OK
> Memory utilisation - OK
> CPU - OK
>
> The tests that we performed were directly monitored on each server.
> Supporting data is attached.
>
> We found  that 10 concurrent users maxed out the
> web servers CPU and pushed the processor queue length way beyond its
> acceptable tolerance.  It should not exceed 2, whereas the tests we
> performed logged it at circa > 20.
>
> The performance test data shows that the ASPNET_WP application CPU
> utilisation hovers above the 75% critical level if the stress level 
> (number
> of Threads) is increased to 10 or more.  The number of Threads equates to 
> the
> number of concurrent connections.  The total CPU utilisation borders on 
> 100%
> for the duration of the test. The processor queue length averages about 
> 23,
> 071 indicating that a number of threads are being queued as the processor
> cannot coupe with the load.  This indicates that there is a CPU bottleneck
> for the current server configuration.
>
> The data also shows that disk IO is not a problem.  The tests showed that
> the performance counters are well within the recommended values. The % 
> disk
> idle time averages about 99% which indicates very little disk reads. 
> Memory
> usage does not seem to be a problem at all.  The % committed bytes in use
> does not exceed the 25% mark for the full duration of the test.
>
> This will be tested on a Dual Pentium Processor (the Varsity's Production
> WebServer), next, but .....!!
>
> So seems the number of threads created, used pooled
> instantiated/de-instantiated may be the problem...Just guessing, I know 
> squat
> about this.
>
> thanks
> Neal
>
>
> "Sam Santiago" wrote:
>
>> Which CPU was maxed out - the DB or the Web server?  You should probably 
>> run
>> a profiling tool during the test to determine which class is the culprit. 
>> I
>> personally like a tool from AutomatedQA called AQTime4 -
>> http://www.automatedqa.com.   Microsoft offers a freebie that is not 
>> quite
>> as user friendly, but effective once you figure it out:
>> http://msdn.microsoft.com/netframework/downloads/default.aspx.
>>
>> Thanks,
>>
>> Sam
>>
>> -- 
>> _______________________________
>> Sam Santiago
>> ssantiago@n0spam-SoftiTechture.com
>> http://www.SoftiTechture.com
>> _______________________________
>> "Neal" <Neal@discussions.microsoft.com> wrote in message
>> news:FDA668A3-5396-4CC1-A47C-498003A3DC4D@microsoft.com...
>> > Hi All
>> >
>> > An app I wrote (ASP.NET) against SQL Server was Load Tested by our IS
>> > division, and they came back with a max  of 10 concurrent users before 
>> > the
>> > Server's CPU was overloaded.
>> > Running ACT against the same app on the same Server, I was getting 1746
>> > concurrent users before a time out occurred. (using the ACT graphs 
>> > showing
>> > RPS and TLB )
>> >
>> > I am using StoredProcs, and the SQL server optimised providers (in 
>> > code),
>> > populating datasets, with some caching, to Grids and labels and 
>> > DropDowns,
>> > ..nothing unusual or rocket science.
>> > The datasets are also optimised (kept as small as possible)
>> >
>> > Is this possible , surely not with .Net ??, could there be an 
>> > explanation
>> > in
>> > the deployment, IIS or in the app??
>> >
>> > Thanks
>> > Neal
>> >
>> >
>> > -- 
>> > Neal Rogers
>> > University of Cape Town
>>
>>
>> 


Relevant Pages