Process memory usage


 
Thread Tools Search this Thread
Operating Systems Solaris Process memory usage
# 1  
Old 02-13-2016
Process memory usage

hi all gurus:

I want to find out Solaris process memory usage, but got a bit confused, see if any one can provide me some guidance.

i tend to use prstat -a to get total memory consumption by user (I know prstat likely have a bug that simply sum up the memory, regardless if the memory being shared memory). Based on this command this hvr have a rss size of 121G .

Code:
prstat -a
 NPROC USERNAME  SWAP   RSS MEMORY      TIME  CPU
     6 hvr       120G  121G    47%   3:05:36 0.1%

then goes to ps, only two processes under hvr, with rss of 588400 + 41212 bytes, this appears varied a lot with above prstat output

Code:
$ ps -eo user,pid,project,taskid,args,rss|sort

    USER   PID  PROJECT TASKID COMMAND                                                                           RSS
     hvr  7289   system 881828 /export/home/hvr/HVR_HOME/bin/hvr -r -EHVR_HOME=/export/home/hvr/HVR_HOME -EHVR  41212
     hvr  7291   system 881829 /export/home/hvr/HVR_HOME/bin/hvr -r -EHVR_HOME=/export/home/hvr/HVR_HOME -EHVR  588400

goes to prstat -t, the project 881829 and 881829 under hvr have rss of 4594M + 4296M

Code:
$ prstat -T
   PID USERNAME  SIZE   RSS STATE  PRI NICE      TIME  CPU PROCESS/NLWP
  8177 hvr        60G 4594M sleep   49    0   1:07:19 0.0% oracle/2
  7306 hvr        60G 4296M sleep   59    0   0:31:05 0.0% oracle/2

goes to prstat -J, then the project 881829 and 881829 under hvr have rss of 60G + 61G, which tend to match with prstat -a

Code:
prstat -J

TASKID    NPROC  SWAP   RSS MEMORY      TIME  CPU PROJECT
881828        1   60G   60G    24%   1:11:55 0.0% system
881829        1   60G   61G    24%   0:33:36 0.0% system

i am very confused, how to accurately find out how much memory process consume in solaris? thanks

Last edited by Don Cragun; 02-13-2016 at 08:48 PM.. Reason: Add CODE AND ICODE tags.
# 2  
Old 02-14-2016
Outside the possible shared segment issue with prstat aggregations, all the commands accurately report how much memory is consumed. The main difference lies with the set of processes that are selected, six with "prstat -a", two with "ps", two different ones with "prstat -T".

You should first define the set of processes you want to measure the memory usage.


Then, a first approximation would be to sum up their RSS and SIZE columns as reported by the ps command. Should you suspect the value is over the actual usage, you can dig up each process memory usage with "pmap -x" and identify which segments are shared and their size.
These 2 Users Gave Thanks to jlliagre For This Post:
# 3  
Old 02-14-2016
thanks.

if i do a --> prstat -a -u to focus only the processof hvr, following is the output, RSS at top portion and bottom portion just do not close at all. top and bottom portion both showed 2 process (nproc)

Code:
   PID USERNAME  SIZE   RSS STATE  PRI NICE      TIME  CPU PROCESS/NLWP
  7291 hvr       709M  627M sleep   59    0   0:42:53 0.0% hvr/1
  7289 hvr        90M   40M sleep   59    0   1:33:56 0.0% hvr/1

 NPROC USERNAME  SWAP   RSS MEMORY      TIME  CPU
     2 hvr       121G  121G    47%   2:16:49 0.0%

Total: 2 processes, 2 lwps, load averages: 2.21, 1.90, 1.85

# 4  
Old 02-14-2016
What Solaris release is this?
Are zones involved?
Why was there six processes belonging to hvr in the "prstat -a" first posting output and only two in the last one?
What is the output of "prstat -s rss -c 1 1"?
# 5  
Old 02-14-2016
thanks, yes, there is a zone setup, can the prstat in one zone be impacted by process from other zones?

Code:
$ prstat -s rss -c 1 1
   PID USERNAME  SIZE   RSS STATE  PRI NICE      TIME  CPU PROCESS/NLWP
 13241 oracle     60G   46G sleep   59    0   3:48:47 0.0% oracle/2
 25852 oracle     60G   44G sleep   59    0   3:35:31 0.0% oracle/2
  4946 oracle     60G   44G sleep   59    0   3:48:46 0.0% oracle/2
 25849 oracle     60G   44G sleep   59    0   3:37:50 0.0% oracle/2
   219 oracle     60G   42G sleep   59    0   0:35:34 0.0% oracle/2
   214 oracle     60G   42G sleep   59    0   0:35:25 0.0% oracle/2
   223 oracle     60G   42G sleep   59    0   0:35:07 0.0% oracle/2
   229 oracle     60G   41G sleep   59    0   0:35:28 0.0% oracle/2
 23824 oracle     60G   41G sleep   59    0   2:24:48 0.0% oracle/2
 23953 oracle     60G   41G sleep   59    0   2:29:03 0.0% oracle/2
 23828 oracle     60G   40G sleep   59    0   2:19:45 0.0% oracle/2
 23951 oracle     60G   39G sleep   59    0   2:24:30 0.0% oracle/2
   201 oracle     60G   39G sleep   59    0   0:22:42 0.0% oracle/2
   209 oracle     60G   39G sleep   59    0   0:22:32 0.0% oracle/2
   205 oracle     60G   39G sleep   59    0   0:21:34 0.0% oracle/2
Total: 450 processes, 800 lwps, load averages: 3.68, 3.38, 2.96
$ uname -a
SunOS hostname 5.10 Generic_147441-05

# 6  
Old 02-15-2016
Quote:
Originally Posted by oakville
thanks, yes, there is a zone setup, can the prstat in one zone be impacted by process from other zones?
No, unless you run prstat in the global zone which has full non global zone visibility.

Otherwise, perhaps are there transient processes running under the hvr account sharing memory with the oracle processes.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Solaris

Find memory usage for a process

I have multiple oracle databases on one server. All the database are running from the same user i.e. oraent. The process for each database can be distinguished by the ps -ef command Eg : ps -ef | grep oraentThe Output : oraent 5361 1 0 20:58:05 ? 0:00 oracledb1... (11 Replies)
Discussion started by: yashreads
11 Replies

2. HP-UX

Virtual Memory Usage a Process

Hi all, Is there any command which shows the virtual memory usage of a particular process in HP-UX machine. I have tried with ps, top but could not get what I want. Kindly provide me a solution. Thanks in Advance ARD (4 Replies)
Discussion started by: ard
4 Replies

3. UNIX for Advanced & Expert Users

collecting memory usage by a process

Hi Guys, I work on a AIX environment and I'm trying to write a script where I can collect all the memory used by a process. Basically I'm executing the command 'ps -fu userid' to get all the process ids and then executing the 'ps v PID' to get all the memory allocated by PPID. My question is... (2 Replies)
Discussion started by: arizah
2 Replies

4. Emergency UNIX and Linux Support

Memory usage of a process having shared libraries

Hi, I have the following two processes that's built with static libraries. Both the process have many common libraries. -rwxr-xr-x 1 xxx xxx 152946280 Oct 15 08:38 server1 -rwxr-xr-x 1 xxx xxx 41633880 Oct 15 08:39 server2. I built these two server processes making all the... (1 Reply)
Discussion started by: srivatsan_vn
1 Replies

5. Programming

Memory usage of a process having shared libraries

Hi, I have the following two processes that's built with static libraries. Both the process have many common libraries. -rwxr-xr-x 1 xxx xxx 152946280 Oct 15 08:38 server1 -rwxr-xr-x 1 xxx xxx 41633880 Oct 15 08:39 server2. I built these two server processes making all the... (1 Reply)
Discussion started by: srivatsan_vn
1 Replies

6. AIX

How to trace cpu/memory usage for a process

I don't know when the process will start and end, I need write a script to trace it's cpu/memory usage when it is runing. How to write this script? (2 Replies)
Discussion started by: rainbow_bean
2 Replies

7. HP-UX

how could I get a process Memory Usage

I use pstat API to get Process Infomation I would like to get a process 1.process owner 2.how many physical memory and virtual memory and total memory used(KB) and usage(%) 3.a process excution file create time 4.a process excution file access time I do't know which attribute it i need ... (3 Replies)
Discussion started by: alert0919
3 Replies

8. Shell Programming and Scripting

Memory usage of a process

hi all, i want to write a script that checks the memory usage of processes and send a mail with the name of the process witch is using more then 300mb RAM. dose anybody have a sample script or an idea how i can make it ? PROCCESSES="snmpd sendmail" for myVar in $PROCCESSES do ... (7 Replies)
Discussion started by: tafil
7 Replies

9. Solaris

RAM Physical Memory usage by each Process.

Hi All, I am trying to find the physical memory usage by each process/users. Can you please let me know how to get the memory usage?. Thanks, bsraj. (12 Replies)
Discussion started by: bsrajirs
12 Replies

10. UNIX for Advanced & Expert Users

how to restrict memory usage by a process

we are running red hat ES4 and i would like to know if there is anyway of restrcting the maximum amount of memory that a process can get? I have a single preocess that is taking >13GB. Thanks, Frank (4 Replies)
Discussion started by: frankkahle
4 Replies
Login or Register to Ask a Question