Re: Solaris 10/Oracle 9 memory problems - but I can't see why ...

From: ddf <oratune_at_msn.com>
Date: Mon, 20 Apr 2009 08:16:07 -0700 (PDT)
Message-ID: <84519492-c88f-4e88-8147-d2dabb4b9468_at_r36g2000vbr.googlegroups.com>



On Apr 20, 9:26 am, Neil Cudd <neil.c..._at_blueyonder.co.uk> wrote:
> Hello,
>
> Solaris sparc 5.10 running Oracle 9.2.0.764 bit EE.
> The server has 2Gb physical memory.
> The (offshore) unix monitors are telling me the server is running out
> of memory. They won't tell me anything else. I guess they think that'd
> take the fun out of it.
> There is one oracle instance with a total sga of 380Mb
> There isn't anything else running (other than BMC Patrol and a Java
> process).
> My unix skills are shaky, but prstat gives the following (editied for
> highlights) :
>
>    PID USERNAME  SIZE   RSS STATE  PRI NICE      TIME  CPU PROCESS/
> NLWP
>   1104 patrol     42M   36M cpu0     0   10   3:19:43 1.1% PatrolAgent/
> 1
>   3035 oracle    456M  437M sleep   59    0   0:02:39 0.0% oracle/12
>   3098 patrol    450M  444M sleep   59    0   0:11:19 0.0% oracle/1
>   3097 patrol     18M   10M sleep   59    0   0:04:27 0.0% sqlplus/1
>   3047 oracle    456M  438M sleep   59    0   0:00:02 0.0% oracle/11
>   3037 oracle    452M  434M sleep   59    0   0:02:08 0.0% oracle/12
>   3031 oracle    450M  429M sleep   59    0   0:01:44 0.0% oracle/1
>   3043 oracle    449M  433M sleep   59    0   0:00:39 0.0% oracle/1
>   3045 oracle    449M  437M sleep   59    0   0:00:37 0.0% oracle/1
>
> A couple of questions :
> Is this output saying that each of those oracle processes has 400+Mb
> memory allocated to it (can't be surely..)
> Is there anything anyone can suggest to identify just what is eating
> all the memory ?
>
> Many thanks for any advice,
> Neil

Yes, it is. SIZE is the total virtual memory size of the process, including all mapped files and devices, in kilobytes (K), mega-bytes (M), or gigabytes (G). RSS is really what you need to be looking at, since that is the resident set size of the process (RSS), in kilobytes (K), megabytes (M), or gigabytes (G). The RSS value is an estimate that might underestimate the actual resident set size. To get a more accurate usage figure Sun recommends using the -x option to pmap instead. Of course you can always use the -t option to prstat:

$ prstat -t

 NPROC USERNAME SWAP RSS MEMORY TIME CPU

    28 oracle   2270M 2350M   7.2%   3:10:11 0.1%
    58 root      225M  380M   1.2%   1:30:40 0.0%
     1 sys      1008K 2504K   0.0%   0:00:00 0.0%
     3 ctsa     4008K 8600K   0.0%   0:03:13 0.0%
     1 smmsp    1456K 8672K   0.0%   0:00:02 0.0%
     1 noaccess  106M  180M   0.5%   0:04:46 0.0%
     6 daemon     10M   12M   0.0%   0:00:02 0.0%

which reports the total usage summary for each user, which includes the total number of processes or LWPs owned by the user, total size of process images, total resident set size, total cpu time, and percentages of recent cpu time and system memory.

David Fitzjarrell Received on Mon Apr 20 2009 - 10:16:07 CDT

Original text of this message