Oracle FAQ Your Portal to the Oracle Knowledge Grid

Home -> Community -> Mailing Lists -> Oracle-L -> RE: dedicated server process memory usage ....

RE: dedicated server process memory usage ....

From: Mark W. Farnham <>
Date: Tue, 8 Jun 2004 18:37:27 -0400
Message-ID: <>

MessageThat is mostly your shared global area -- where all the shared memory structures an Oracle instance uses are kept, such as the shared sql pool and the database block buffers.

So yes, you can tune it by making various init params bigger or smaller. But remember that you're only really saving space once per database instance, not once per server process (even though it looks that way when you look at RSS rather than pmap.)

oh , and below I meant to type 'view via'....   -----Original Message-----
[]On Behalf Of Pampati, Sree
  Sent: Tuesday, June 08, 2004 4:44 PM
  Subject: RE: dedicated server process memory usage ....

  Thanks Frank ,Dennis & Juan !

  Why does OS allocate about 536 MB to the server process (shared though!) ? Is it something we can tune ?

  Sree Pampati

    -----Original Message-----
    From: Mark W. Farnham []     Sent: Tuesday, June 08, 2004 10:18 AM     To:
    Subject: RE: dedicated server process memory usage ....

    On systems such as yours where pmap -x exists and works correctly, you can see beautifully on the line address 20000000 that nearly all of the memory for this process is shared. That's your Oracle shared memory area which you should also be able to view view ipcs. So you see at the bottom how little private memory you are really using, even though RSS reports it all per process. You only have an actual problem on systems (mostly ancient, I think) that keep counting reads of shared memory against each process and drive false paging. So I don't think you have an operational problem, just a concern about how the memory adds up. Correct me if I'm wrong.

     -----Original Message-----
[]On Behalf Of Pampati, Sree

    Sent: Tuesday, June 08, 2004 9:57 AM     To:
    Subject: RE: dedicated server process memory usage ....

      Thanks Mark for your reply!

      I meant : I just opened sqlplus connection using "sqlplus userid/pwd", that's all!

      You said : ..." but please be sure to avoid taking the .6G per server process allocation seriously" . I am not sure how to tune/avoid this ?

      I sincerely appreciate your thoughts on this .

       pmap -x <pid> is given below:
      read/write/exec/shared  {ism shmid=0X201 ]  figures seem to be very
big ?!!!!!!
      8828:   oracleqalc4 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
       Address   Kbytes Resident Shared Private Permissions       Mapped
      00010000   48272   25952   25952       - read/exec         oracle
      02F42000     472     472     368     104 read/write/exec   oracle
      02FB8000     432     320       -     320 read/write/exec     [ heap ]
      20000000  536576  536576  536576       - read/write/exec/shared  [ ism
shmid=0x201 ]
      FEBC0000      16      16      16       - read/exec
      FEBD0000      88      80      80       - read/exec
      FEBF4000       8       8       -       8 read/write/exec
      FEC00000    4400    2880    2880       - read/exec
      FF05A000     192     192      32     160 read/write/exec
      FF08A000       8       -       -       - read/write/exec
      FF0A0000      16      16      16       - read/exec
      FF0B4000       8       8       -       8 read/write/exec
      FF0C0000       8       8       8       - read/exec
      FF0D2000       8       8       -       8 read/write/exec
      FF0E0000      32      32      32       - read/exec
      FF0F8000       8       8       -       8 read/write/exec
      FF100000     688     688     688       - read/exec
      FF1BC000      32      32       -      32 read/write/exec
      FF1D0000      24      24      24       - read/exec
      FF1E6000       8       8       -       8 read/write/exec
      FF1F0000       8       8       -       8 read/write/exec     [ anon ]
      FF200000     568     568     568       - read/exec
      FF29E000      40      40       -      40 read/write/exec
      FF2A8000      24      16       -      16 read/write/exec
      FF2C0000       8       8       8       - read/exec
      FF2D2000       8       8       -       8 read/write/exec
      FF2E0000       8       8       8       - read/write/exec/shared   [
anon ]
      FF2F0000      24      24      24       - read/exec
      FF306000       8       8       -       8 read/write/exec
      FF310000      40      40      40       - read/exec
      FF32A000       8       8       -       8 read/write/exec
      FF330000       8       8       8       - read/exec
      FF340000       8       8       -       8 read/write/exec
      FF350000       8       8       8       - read/exec
      FF360000       8       8       -       8 read/write/exec
      FF370000       8       8       -       8 read/write/exec     [ anon ]
      FF380000       8       8       8       - read/exec
      FF390000       8       8       -       8 read/write/exec
      FF3A0000       8       8       8       - read/exec
      FF3B0000     160     160     160       - read/exec
      FF3E6000      16      16       -      16 read/write/exec
      FFBE6000      40      40       -      40 read/write          [ stack ]
      --------  ------  ------  ------  ------
      total Kb  592320  568344  567512     832

      febiccp_at_eceisdblc4 - qalc4

      Sree Pampati

        -----Original Message-----
        From: Mark W. Farnham []
        Sent: Monday, June 07, 2004 10:34 AM
        Subject: RE: dedicated server process memory usage ....

        Unfortunately it is non-trivial to figure out how much of the shared
memory area of the running Oracle instance is reported as part of each server connection, and this varies by OS, release of OS, and tool used to report "sz" and "RSS."

        I'm not sure what you meant about "no SQL fired" since I'm not aware of how to open a sqlplus connection without the query of username/password firing, along with whatever level of auditing you may have.

        Possibly someone else can refer you to a good resource for evaluating MTS, but please be sure to avoid taking the .6G per server process allocation seriously. I doubt Solaris 8 has this problem, but some old Unix varieties had page/swap limits that did not take into account shared memory, so executing a table scan would drive "false paging" unless you configured "RSSMAX" to the ceiling of your shared memory plus the program space. By "false paging" I mean copying shared memory your process has mapped to page or swap (from whence it will never be recalled, since the shared memory is still actually current.) Setting the RSSMAX high would in turn then allow applications to run rampant on your memory, so this tipped the balance of whether to allow a certain application on your database server far in favor of saying no if an application had big libraries.

        Good luck!

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

[]On Behalf Of Pampati, Sree
Sent: Monday, June 07, 2004 9:42 AM To: Subject: dedicated server process memory usage .... Hi, How is memory allocated to a dedicated server process ? I just
opened a sqlplus connection ( no SQL fired!), did ps -elf | grep <pid> on the server pid, which showed sz: 592M, RSS: 558. There are about 800 server processes running at that time ( the box has 10G physical mem, of which about 2GB was free at that time. Solaris 8 . Oracle version : ).
          *_area_size parameters in init.ora  are : bitmap_merge_area_size =
1048576     (1MB)

create_bitmap_area_size= 8388608 (8MB)

hash_area_size = 4194304 (4MB)

sort_area_size                = 2097152     (2MB)

          Oracle 10gAS and 9iAS too are running on the box in addition to
the oracle instance.

          Is this a good candidate for MTS ? Do I get substantial benefit using pga_target_aggregate features of 9i ?

          I would very sincerely appreciate your valuable feed back ( any pointers to docs/info are highly appreciated).

          Sree Pampati

          -----Original Message-----
          From: Darrell Landrum []
          Sent: Saturday, June 05, 2004 12:58 AM
          Subject: Re: Hardware Question

            Hey Jay,

            I hate when management comes to me with questions like you
mention about this new hardware handling the workload.
            But, I have a response now that I love because it can be
confusing to them.
            I simply ask, "Why?".
            Why are they looking at new hardware?  Does the current hardware
not handle the workload? Is there a forthcoming app server/database upgrade that will require more resources? Are they scaling out their current utilization, perhaps to more users? Are they adding more databases? I know this may not seem like the best attitude and trust me, I love newer, faster hardware more than most, but really the justification for new hardware should come before the shopping for hardware. In my role as a DBA, I should be the one (or, of course, the sys admins) that recognizes the need for hardware upgrades and hopefully before management starts to feel the need. If I can't quantify the need for new servers or additional hardware (or software for that matter), I actually speak against it. This way, when I tell them we need something, they listen!
            Just one guy's 2 cents.
            However, you mention a bottleneck on the SAN controllers.  That
is a big red flag. There's always a chance (and some would argue a very good chance) that faster processors and more memory will make this SAN controller bottleneck worse or at least more noticeable. Hopefully, additional channels to the SAN are being considered with this new box as well.

            Good luck!

Please see the official ORACLE-L FAQ:

To unsubscribe send email to: put 'unsubscribe' in the subject line.
Archives are at
FAQ is at
Received on Tue Jun 08 2004 - 17:42:13 CDT

Original text of this message