General
cancel
Showing results for 
Search instead for 
Did you mean: 

How to determine memory utilization of a process

Tony Williams
Regular Advisor

How to determine memory utilization of a process

We have an Oracle 10g database instance running on a HP-UX 11.23 server, when the DBA makes paramter changes to increase memory useage they would expect to see an increase in the RSS in Glance, or the Res Mem column in gpm, or the vsz column in the "ps" output but nothing ever changes. I think all of the above include the text, stack, data, and shared memory of a process so should'nt the values change? Is there some other memory component that we need to look for?
8 REPLIES
Dennis Handly
Acclaimed Contributor

Re: How to determine memory utilization of a process

>Is there some other memory component that we need to look for?

Shared memory with "ipcs -ma"?
Tony Williams
Regular Advisor

Re: How to determine memory utilization of a process

Thanks Dennis,

That's where I'm confused. I thought that RSS in Glance, and vsz in ps included the shared memory but when I check ps I get one size:

UNIX95= ps -eo 'vsz pid' | grep 25136
98404 25136

and when I check shared memory SEGSZ for that process I get something else:

104000000

The numbers are close 98404 * 1024=100765696

I assume that shared memory is included.
Emil Velez
Honored Contributor

Re: How to determine memory utilization of a process

RSS is resident stack size but if a executible is used by many processes the RSS is divided by the number of processes using the executible and libraries.

Select the process and then look at memory regions in glance.
Bill Hassell
Honored Contributor

Re: How to determine memory utilization of a process

Shared memory is not easy to assign to a process. Whether it was created, used or forgotten by a process is solely dependent on each process that might use it. Think of shared memory (SGA) as an Oracle subsystem area. The DBA usually makes changes to SGA rather than the local memory used by a specific process. Shared memory is one of many shared resources that can be used by several processes at the same time -- which makes simple memory-per-process calculations somewhat difficult.


Bill Hassell, sysadmin
Jean-Luc Oudart
Honored Contributor

Re: How to determine memory utilization of a process

Rita C Workman
Honored Contributor

Re: How to determine memory utilization of a process

Do you DBA's have OEM (Oracle Enterprise Manager)? That might be more beneficial to help them with the performance of a process.
Just thinking that when I used to check things for Oracle (ages ago..) I wanted to know which process (i.e. lousy query) was causing the performance issue. Looking from Glance made it extremely difficult to figure which Oracle process was the true problem. But using the Oracle tools one could find the specific issue more efficiently.

Like Bill mentioned Oracle creates it's own sub-system sitting on top of the O/S. And 10g is grid computing, so I'm thinking the DBA's might do better looking to their tools to get a picture of database performance or tracking specific processes.

Just a thought,
Rita
Aneesh Mohan
Honored Contributor

Re: How to determine memory utilization of a process

Hi

>>when the DBA makes paramter changes to increase memory useage .

Which parameter they are increasing ?

He can get it all the information from the database itself since database process memory utilization is managed by Database memory management system .

Oracle DB Side
==============

a) using v$process and v$process_memory

v$process:-
The columns PGA_USED_MEM, PGA_ALLOC_MEM, PGA_FREEABLE_MEM and PGA_MAX_MEM can be used to monitor the PGA memory usage of these processes

v$process_memory:-
The columns CATEGORY, ALLOCATED, USED, and MAX_ALLOCATED can be used to dynamically monitor the PGA memory usage of Oracle processes .

Aneesh
Tony Williams
Regular Advisor

Re: How to determine memory utilization of a process

Thanks Aneesh,

I'm not sure what parameters they are changing, I know they are trying to get some part of parallel processing to work.