RE: shared server configuration

From: Goulet, Richard <Richard.Goulet_at_parexel.com>
Date: Thu, 21 Oct 2010 09:32:53 -0400
Message-ID: <6B0D50B70F12BD41B5A67F14F5AA887F0B25240C_at_us-bos-mx022.na.pxl.int>



Maureen,

        To start with processes and sessions are two separate parameters in your init/spfile and having different values is not a problem, mostly. Sessions should be equal to or greater than processes. As for shared server mode the biggest problem is not having an idle shared server when it's needed. In that case the end user must wait till one is available. Now you can set max_shared_servers higher than shared_servers and Oracle will start/stop serves as it needs, just don't hold your breath. Starting and stopping shared server processes is a background task for smon so it doesn't react rapidly. To get around that you really need to know that your average active session count is through out a typical day. That + 50% is what I'd set shared servers to, better to have a pile of idle shared server processes than a client waiting. MAX_SHARED_SERVERS I'd set to 60% or processes and sessions to processes*2.

        Yes this can save you a pile of memory since a shared server takes up a little less that half the memory of a dedicated server, but the downfall above needs to be considered. BTW: Take a look at the max sessions your dispatchers can handle, some operating systems allow this to be higher than others. Now take your expected max session load and divide that by the max sessions per dispatcher multiplied by 0.75. Here's an example:

        I'm on Linux with Oracle 11.1.0.7. Max sessions per dispatcher is 972 (lsnrctl services will tell you). Now you say your expecting 5000 sessions max. So the dispatchers parameter should be set to ceil(5000/(972*.075)) or 69 dispatchers in my case which would cause me to visit the application designers since their connection pool probably isn't that large.

Dick Goulet
Senior Oracle DBA

-----Original Message-----

From: oracle-l-bounce_at_freelists.org
[mailto:oracle-l-bounce_at_freelists.org] On Behalf Of Maureen English Sent: Wednesday, October 20, 2010 10:23 PM To: oracle-l_at_freelists.org
Subject: shared server configuration

We're trying to determine the optimal parameter settings to allow us to have one of our applications connect to our database (10g) using shared server connections.

We currently have processes set to 2000. With only dedicated server connections, we have swapping problems when we reach about 1800 connections. I've always thought that connections and processes were the same thing.

I'm pretty sure I understand the concept of shared servers. I see the many shared server connections to the database, and the 3 OS processes these connections are using. That looks to me like it will definitely solve our swapping problem when we get overloaded.

What I'm confused about is whether or not we need to increase the value we have for processes. I can see in v$session that there are many sessions with the same ospid...which makes sense, those are all using the same shared server process.

We don't limit shared server sessions, just the number of shared servers. What worries me is that if we have 3000-5000 people hitting our application at the same time, how will that affect the number of processes?

I've been looking at v$process in our test database, but we don't have the volume of users in this database that we have in our production database, so it's hard to determine what's happening to processes as we increase the shared server sessions.

Any comments/suggestions?

--

http://www.freelists.org/webpage/oracle-l Received on Thu Oct 21 2010 - 08:32:53 CDT

Original text of this message