RE: shared server configuration

  • From: "Goulet, Richard" <Richard.Goulet@xxxxxxxxxxx>
  • To: <maureen.english@xxxxxxxxxx>, <oracle-l@xxxxxxxxxxxxx>
  • Date: Thu, 21 Oct 2010 09:32:53 -0400

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@xxxxxxxxxxxxx
[mailto:oracle-l-bounce@xxxxxxxxxxxxx] On Behalf Of Maureen English
Sent: Wednesday, October 20, 2010 10:23 PM
To: oracle-l@xxxxxxxxxxxxx
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?

- Maureen
--
//www.freelists.org/webpage/oracle-l


--
//www.freelists.org/webpage/oracle-l


Other related posts: