On Thu, Mar 5, 2009 at 8:31 AM, elkhaoul elkhaoul <elkha...@yahoo.fr> wrote: > Hello, > > > Application running on Solaris10 use the all memory (100%) more than 80GB > (The machine has only 8Gb of physical memory and 16 of swap), > > #### prstat -a > ............. > NPROC USERNAME SIZE RSS MEMORY TIME > CPU > 142 root 2296M 181M 0.2% 39:53:02 7.6% > 348 ora10g 99G 83G 100% 61:40:23 5.3%
I bet that is an Oracle 10g database. Oracle uses a large shared memory area called the "system global area" or sga. You likely have tens to hundreds of processes all mapping this same shared memory segment and as such each appears to be using that amount of memory. The rather ancient patch release of Solaris 10 that you are using is not able to recognize that it is counting the same memory many times and as such gives you misleading information. FWIW, I've seen other systems that claim to be using well over a terabyte of memory even though they *only* had a couple hundred gigabytes. I believe that it was in the Solaris 10 update 4 time frame that the way that memory is accounted for changed. Now oracle on the same system appears to be using less than 100 GB (again that is a minority of the RAM on the box). The new accounting appears to not include the sga, so there is a trade-off here with neither being a completely accurate representation. > > #### sar -g 10 > SunOS epsu17 5.10 Generic_118822-26 sun4u 03/05/2009 > 15:25:52 pgout/s ppgout/s pgfree/s pgscan/s %ufs_ipf > 15:26:02 23.16 38.57 36.68 358.95 0.00 The pgscan/s certainly looks like you have some memory pressure. > How can I find debug this application ? the processing blocking the memory ? You can use "vmstat -p 10" to get a better idea of what is causing the paging (executable, anonymous, filesystem). You can use "ipcs -ma" to see the shared memory segments, there sizes, and how many processes have them mapped (nattach). A segment owned by ora10g that is kinda big with a large number of processes attached is likely the sga. The DTraceToolkit (ask google) has several useful scripts in the Mem directory. Things I would be looking at are: - Is the SGA set bigger than it should be? - Are you doing a lot of I/O to and from /tmp? - Are you running things on the box not related to the database? Look at "prstat -s rss -c -n 5000 1 1 | grep -v ora10g | head" to find candidates to relocate to another box. -- Mike Gerdts http://mgerdts.blogspot.com/ _______________________________________________ perf-discuss mailing list perf-discuss@opensolaris.org