RE: dedicated server process memory usage ....

  • From: "Mark W. Farnham" <mwf@xxxxxxxx>
  • To: <oracle-l@xxxxxxxxxxxxx>
  • Date: Tue, 8 Jun 2004 10:17:34 -0400

MessageOn 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-----
From: oracle-l-bounce@xxxxxxxxxxxxx [mailto:oracle-l-bounce@xxxxxxxxxxxxx]On
Behalf Of Pampati, Sree
Sent: Tuesday, June 08, 2004 9:57 AM
To: oracle-l@xxxxxxxxxxxxx
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 File
  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         libc_psr.so.1
  FEBD0000      88      80      80       - read/exec         libm.so.1
  FEBF4000       8       8       -       8 read/write/exec   libm.so.1
  FEC00000    4400    2880    2880       - read/exec         libjox9.so
  FF05A000     192     192      32     160 read/write/exec   libjox9.so
  FF08A000       8       -       -       - read/write/exec   libjox9.so
  FF0A0000      16      16      16       - read/exec         libmp.so.2
  FF0B4000       8       8       -       8 read/write/exec   libmp.so.2
  FF0C0000       8       8       8       - read/exec         libkstat.so.1
  FF0D2000       8       8       -       8 read/write/exec   libkstat.so.1
  FF0E0000      32      32      32       - read/exec         libaio.so.1
  FF0F8000       8       8       -       8 read/write/exec   libaio.so.1
  FF100000     688     688     688       - read/exec         libc.so.1
  FF1BC000      32      32       -      32 read/write/exec   libc.so.1
  FF1D0000      24      24      24       - read/exec         librt.so.1
  FF1E6000       8       8       -       8 read/write/exec   librt.so.1
  FF1F0000       8       8       -       8 read/write/exec     [ anon ]
  FF200000     568     568     568       - read/exec         libnsl.so.1
  FF29E000      40      40       -      40 read/write/exec   libnsl.so.1
  FF2A8000      24      16       -      16 read/write/exec   libnsl.so.1
  FF2C0000       8       8       8       - read/exec         libsched.so.1
  FF2D2000       8       8       -       8 read/write/exec   libsched.so.1
  FF2E0000       8       8       8       - read/write/exec/shared   [ anon ]
  FF2F0000      24      24      24       - read/exec         libgen.so.1
  FF306000       8       8       -       8 read/write/exec   libgen.so.1
  FF310000      40      40      40       - read/exec         libsocket.so.1
  FF32A000       8       8       -       8 read/write/exec   libsocket.so.1
  FF330000       8       8       8       - read/exec         libskgxn9.so
  FF340000       8       8       -       8 read/write/exec   libskgxn9.so
  FF350000       8       8       8       - read/exec         libskgxp9.so
  FF360000       8       8       -       8 read/write/exec   libskgxp9.so
  FF370000       8       8       -       8 read/write/exec     [ anon ]
  FF380000       8       8       8       - read/exec         libodmd9.so
  FF390000       8       8       -       8 read/write/exec   libodmd9.so
  FF3A0000       8       8       8       - read/exec         libdl.so.1
  FF3B0000     160     160     160       - read/exec         ld.so.1
  FF3E6000      16      16       -      16 read/write/exec   ld.so.1
  FFBE6000      40      40       -      40 read/write          [ stack ]
  --------  ------  ------  ------  ------
  total Kb  592320  568344  567512     832

  febiccp@eceisdblc4 - qalc4


  Thanks,
  Sree Pampati
  617-392-1594

    -----Original Message-----
    From: Mark W. Farnham [mailto:mwf@xxxxxxxx]
    Sent: Monday, June 07, 2004 10:34 AM
    To: oracle-l@xxxxxxxxxxxxx
    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-----
      From: oracle-l-bounce@xxxxxxxxxxxxx
[mailto:oracle-l-bounce@xxxxxxxxxxxxx]On Behalf Of Pampati, Sree
      Sent: Monday, June 07, 2004 9:42 AM
      To: oracle-l@xxxxxxxxxxxxx
      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
:9.2.0.4 ).

      *_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).

      Thanks,
      Sree Pampati


      -----Original Message-----
      From: Darrell Landrum [mailto:darrell@xxxxxxxxxxx]
      Sent: Saturday, June 05, 2004 12:58 AM
      To: oracle-l@xxxxxxxxxxxxx
      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!

Other related posts: