HIgh CPU usage

HIgh CPU usage

Postby hepek » Mon 18 Mar 2013 13:51

Hi,

Our env is Windows server 2008 64 bit, IIS 7 64 bit, dotConnect 6.70 pro.
We have about 200 concurrent users.

Sometimes our servers reach 100% CPU and requests start getting dropped and timed out.
This happens randomly about every 4-5 days, and when it happens we have to recycle app pool. Can you please advise - how do we approach this problem. Should we use "Validate Connection=true" perhaps?

thank you

We use direct connection with settings like below:
Code: Select all
direct=True;
Max Pool Size=100;Min Pool Size=25;
Connection Lifetime=900;
Connection Timeout=5;
Default Command Timeout=30;
persist security info=True;
hepek
 
Posts: 115
Joined: Thu 07 Jul 2011 13:59

Re: HIgh CPU usage

Postby hepek » Mon 18 Mar 2013 16:07

One thing is confusing here:

My request time out is 2 minutes. My Default Command Timeout=30.
So, how can I ever reach the two minutes of Request time out?

According to my connection string after 30 seconds DB command should time out, and exception should be passed to a page. That is not happening obviously.
Even if IIS has some dead connections and unable to connect - it should never pass the 30 seconds limitation. Does that make sense?

Or perhaps connecting to a database is NOT considered to be command (which should time out in 30 sec)?
hepek
 
Posts: 115
Joined: Thu 07 Jul 2011 13:59

Re: HIgh CPU usage

Postby hepek » Mon 18 Mar 2013 16:38

I noticed in event log I had a bunch of errors as listed below. Is this a generic TimeOut error?

A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond
hepek
 
Posts: 115
Joined: Thu 07 Jul 2011 13:59

Re: HIgh CPU usage

Postby Shalex » Tue 19 Mar 2013 13:19

hepek wrote:My request time out is 2 minutes. My Default Command Timeout=30.
So, how can I ever reach the two minutes of Request time out?

There are three timeouts:
Connection Timeout -> time (in seconds) to wait while trying to establish a connection before terminating the attempt and generating an error.
Command Timeout -> time in seconds to wait while trying to execute a command before terminating the attempt and generating an error.
Request Timeout -> time in seconds a request is allowed to execute before being automatically shut down by ASP.NET. This time-out applies only if the debug attribute in the <compilation> element is set to false.

You should synchronize the values of these timeouts in your application.
For more information, refer to
http://forums.asp.net/t/1040377.aspx
http://forums.devart.com/viewtopic.php?f=1&t=26073

hepek wrote:Connection Timeout=5;

Have you tried increasing value of Connection Timeout?

hepek wrote:Should we use "Validate Connection=true" perhaps?

Pros and cons of using Validate Connection: http://www.devart.com/dotconnect/oracle/docs/?Devart.Data.Oracle~Devart.Data.Oracle.OracleConnectionStringBuilder~ValidateConnection.html.
Shalex
Devart Team
 
Posts: 7530
Joined: Thu 14 Aug 2008 12:44


Return to dotConnect for Oracle