2 Replies Latest reply on Nov 17, 2012 5:03 AM by sulimo

    SGA, PGA and... little extra?

      Will oracle process use some extra "non oracle" memory for OS related stuff?
      Mean, not considering SGA, I connect a database process and I see:
      SQL> select p.program,
        2  p.spid, pm.category, pm.allocated/1024 allocated, pm.used/1024 used, pm.max_allocated/1024 max_allocated
        3  from V$PROCESS p, V$PROCESS_MEMORY pm
        4  where p.pid = pm.pid
        5  and p.spid =2650;
                                                                                Allocated       Usedd   allocated
      PROGRAM                        SPID                     CATEGORY                 Kb          Kb          Kb
      ------------------------------ ------------------------ --------------- ----------- ----------- -----------
      oracle@uxlabhost11             2650                     SQL                      14           9          42
      oracle@uxlabhost11             2650                     PL/SQL                   56          34          57
      oracle@uxlabhost11             2650                     Other                  1501                    1501
      That's allocated PGA after having connected and done nothing else

      So it somehow allocated 1.4 Mb upon start-up...

      Now question is. Do oracle processes use OS memory which cannot be considered as SGA or PGA?

      Reason being my trying to estimate memory needs for a database server. Many I've read correct formula should be SGA + max allocated PGA + some_extra_just_in_case...

      Is there an estimate on how much that "some_extra_just_in_case" would be per process?
      If OS dependent, I'm implementing on RHEL 6...

        • 1. Re: SGA, PGA and... little extra?
          • 2. Re: SGA, PGA and... little extra?
            So, I've used pmap...

            Got 257 enties in the form "4096K rw-s- /dev/shm/"

            since we are using AMM , that should do for PGA and SGA ... some 1052672 Kb, which process is attached to...

            yet pmap then continues to display other entries....
            0000002a95557000      4K r-x--  /opt/oracle/product/11g/lib/libodm11.so
            0000002a95558000   1024K -----  /opt/oracle/product/11g/lib/libodm11.so
            0000002a95658000      4K rw---  /opt/oracle/product/11g/lib/libodm11.so
            0000002a95659000      4K rw---    [ anon ]
            0000002a9565a000    392K r-x--  /opt/oracle/product/11g/lib/libcell11.so
            0000002a956bc000   1024K -----  /opt/oracle/product/11g/lib/libcell11.so
            0000002a957bc000     40K rw---  /opt/oracle/product/11g/lib/libcell11.so
            0000002a957c6000      4K rw---    [ anon ]
            0000002a957c7000    864K r-x--  /opt/oracle/product/11g/lib/libskgxp11.so
            .. TRUNCATED...
            0000003fb810a000     64K rw---    [ anon ]
            0000003fbbd00000     84K r-x--  /lib64/libnsl-2.3.4.so
            0000003fbbd15000   1020K -----  /lib64/libnsl-2.3.4.so
            0000003fbbe14000      4K r----  /lib64/libnsl-2.3.4.so
            0000003fbbe15000      4K rw---  /lib64/libnsl-2.3.4.so
            0000003fbbe16000      8K rw---    [ anon ]
            0000007fbffde000    136K rwx--    [ stack ]
            ffffffffff600000      4K r-x--    [ anon ]
            total          1276452K
            Notice "total 1276452K"

            So you saying non SGA/PGA would be 1276452 - 1052672?

            That would be too much... yet if pmap another process, almost all flags (hex column) but [ stack ] are the same....

            So how to tell which of those are shared and which are "exclusive" to the process, i.e: The "some extra just in case" mem...