HIgh CPU usage

Discussion of open issues, suggestions and bugs regarding ADO.NET provider for Oracle
Post Reply
hepek
Posts: 115
Joined: Thu 07 Jul 2011 13:59

HIgh CPU usage

Post by 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

Post by 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

Post by 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

Shalex
Site Admin
Posts: 8245
Joined: Thu 14 Aug 2008 12:44

Re: HIgh CPU usage

Post by 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 ... ction.html.

Post Reply