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 .
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
$ 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
$ 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
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