Memory monitoring system (How to interpret prstat and pmap)

Hi,

 

We noticed somethimes that available physical RAM is going around 0 so
need to get details into command to look into which process is using how
much memory:

Oracle 10g installed on solaris 10

RAM : 2GB

SGA : ~600MB

PGA_AGGREGATE_TARGET : ~200MB

 

Currently system have following information:

 

$ prstat

   PID USERNAME  SIZE   RSS STATE  PRI NICE      TIME  CPU PROCESS/NLWP

  7939 oracle   4936K 4648K cpu0    39    0   0:00:00 0.1% prstat/1

 13045 oracle    710M  610M sleep   59    0   0:01:37 0.1% oracle/1

 13024 oracle    711M  603M sleep   59    0   0:00:47 0.0% oracle/1

 13041 oracle    711M  614M sleep   59    0   0:01:02 0.0% oracle/1

 13035 oracle    712M  610M sleep   59    0   0:00:49 0.0% oracle/11

 13043 oracle    714M  624M sleep   59    0   0:00:20 0.0% oracle/1

  2333 oracle   8160K 3248K sleep   49    0   0:00:02 0.0% sshd/1

   487 oracle    710M  622M sleep   59    0   0:00:47 0.0% oracle/1

    81 root     3472K 2224K sleep   59    0   0:00:09 0.0% picld/5

 13031 oracle    717M  610M sleep   59    0   0:00:22 0.0% oracle/249

   316 smmsp    5936K 1904K sleep   59    0   0:00:00 0.0% sendmail/1

   194 root     2112K 1184K sleep   59    0   0:00:00 0.0% ttymon/1

   200 root     2080K 1096K sleep   59    0   0:00:00 0.0% ttymon/1

   272 root     4984K 2144K sleep   59    0   0:00:00 0.0% automountd/3

   187 daemon   2320K 1320K sleep   60  -20   0:00:00 0.0% nfs4cbd/2

   178 root     2608K 1328K sleep   59    0   0:00:00 0.0% cron/1

    88 daemon   5064K 2840K sleep   59    0   0:00:06 0.0% kcfd/7

   181 daemon   2576K 1288K sleep   59    0   0:00:00 0.0% rpcbind/1

   185 daemon   2832K 1640K sleep   59    0   0:00:00 0.0% statd/1

    60 root     2488K 1264K sleep   59    0   0:00:00 0.0% syseventd/14

   191 root     1976K 1064K sleep   59    0   0:00:00 0.0% sac/1

Total: 216 processes, 601 lwps, load averages: 0.03, 0.02, 0.05

 

$ pmap -x 13045

13045:  ora_mmnl_netmeter

         Address     Kbytes        RSS       Anon     Locked Mode
Mapped File

0000000100000000     100536      38584          -          - r-x--
oracle

000000010632C000        808        520        176          - rwx--
oracle

00000001063F6000       1016       1000       1000          - rwx--    [
heap ]

0000000380000000     598024     598024          -     598024 rwxsR    [
ism shmid=0x12 ]

....

....

.....

....

 

 

       total Kb     723240     645544       3000     598024

 

How to interpret the output of prstat and pmap commands?

Do resident memory means RAM memory or this may include swap?

Do anonymous is private memory and that means the current process is
only using ~3M of private memory?

Is there any easy command that can give me total memory used by all the
oracle processes?

 

 

Other related posts: