Page 1 of 1
HIgh CPU usage
Posted: Mon 18 Mar 2013 13:51
by hepek
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;
Re: HIgh CPU usage
Posted: Mon 18 Mar 2013 16:07
by hepek
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)?
Re: HIgh CPU usage
Posted: Mon 18 Mar 2013 16:38
by hepek
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
Re: HIgh CPU usage
Posted: Tue 19 Mar 2013 13:19
by Shalex
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.