Solaris command: prstat

Total Physical Memory

>prtdiag -v | grep Memory
Memory size: 8192 Megabytes
 
>prtconf | grep Memory
Memory size: 8192 Megabytes

Total Physical Memory

>vmstat 5 10
 r b w   swap  free  re  mf pi po fr de sr vc vc vc vc   in   sy   cs us sy id
 0 0 0 14841224 772880 23 147 19 6 6  0  1  1  0  2  2 3775 2990 3820  2  2 96
 1 0 0 20482808 4992304 3 3  0  0  0  0  0  1  0  0  0  527  474  482 13  0 87
 0 0 0 20483192 5000272 1 5  0  3  3  0  0  0  0  0  1  583  645  606 13  1 86
 0 0 0 20485848 5033400 0 0  0  0  0  0  0  0  0  0  0  528  463  492 13  1 86
 0 0 0 20485848 5033344 0 0  0  0  0  0  0  0  0  0  1  514  469  475 13  0 87
 0 0 0 20485848 5033288 0 0  0  0  0  0  0  0  0  0  2  513  450  476 13  0 87
 0 0 0 20485848 5033288 0 0  0  0  0  0  0  1  0  0  0  516  468  476 13  0 87
 0 0 0 20485848 5033240 0 0  0  0  0  0  0  0  0  0  0  510  451  467 13  0 87
 0 0 0 20485848 5033184 0 0  0  0  0  0  0  0  0  0  0  518  468  475 13  0 87
 0 0 0 20485848 5033128 0 0  0  0  0  0  0  0  0  0  0  523  456  474 13  1 86

Find Overall CPU Usages

* Use multiple processor stat tool ‘mpstat’
* Columns to note
– ‘usr’: percent user time
– ‘sys’: percent system time
– ‘idl’: percent idle time
* Example

# Generate 2 processor reports with 5 second interval
mpstat 5 2
CPU minf mjf xcal  intr ithr  csw icsw migr smtx  srw syscl  usr sys  wt idl
  0   14   0   42    35   18   48    0    1    8    0   139    1   0   0  99
  1    7   0   27    87   55   65    0    1    8    0    92    0   1   0  99

Find CPU Usage by Processes

* Use process stat tool ‘prstat’
* Similar to Linux ‘top’ command
* Examples

# Sort by cpu usage (default)
prstat 
 
# Sort by memory usage
prstat -s rss
 
# Sort by virtual memory usage
prstat -s size
 
# Sort by process execution time
prstat -s time
 
# Find top 5 processes
prstat -n 5
 
# Also print process numbers each user is using
prstat -a
 
# Follow a particular process id
prstat -p pid
 
# Follow threads of a particular process id
prstat -L -p pid

Find Paging Activities

* Use system activity report tool ‘sar’
* Examples

# Find top 3 paging activities with 5 second interval
sar -g 5 3
18:57:12  pgout/s ppgout/s pgfree/s pgscan/s %ufs_ipf
18:57:17     0.00     0.00     0.00     0.00     0.00
18:57:22     0.00     0.00     0.00     0.00     0.00
18:57:27     0.00     0.00     0.00     0.00     0.00
 
Average      0.00     0.00     0.00     0.00     0.00
 
# Total memory
/usr/sbin/prtconf | grep Memory | awk -F":" '{print $2}'
Memory size: 8192 Megabytes
 
# Find free memory and swap space based on 3 reads with 5 second read intervals
sar -r 5 3
18:56:24 freemem freeswap
18:56:29  175049 28289968
18:56:34  175031 28289843
18:56:39  175026 28289952
 
Average   175036 28289921

Process Memory Usage

>ps -A -o pmem -o pcpu -o args
 
>ps -e -o "rss(k) vsz(k) pmem pid comm" | qrep -v COMMAND | sort -rn | awk '{print $1 "\t" $2 "\t" $3 "\t" $4 "\t" $5;}'

Sample Sessions

* Follow a particular process id in 5 second intervals and send result to server.out file

bash-3.00$ prstat -L -p 16401 5 > server.out &
[1] 16530
bash-3.00$ tail -f server.out 
   PID USERNAME  SIZE   RSS STATE  PRI NICE      TIME  CPU PROCESS/LWPID      
 16401 oracle   5270M 4125M sleep   59    0   0:00:00 0.0% oracle/1
Total: 1 processes, 1 lwps, load averages: 0.03, 0.04, 0.04
   PID USERNAME  SIZE   RSS STATE  PRI NICE      TIME  CPU PROCESS/LWPID      
 16401 oracle   5270M 4125M sleep   59    0   0:00:00 0.0% oracle/1
Total: 1 processes, 1 lwps, load averages: 0.03, 0.04, 0.04
   PID USERNAME  SIZE   RSS STATE  PRI NICE      TIME  CPU PROCESS/LWPID      
 16401 oracle   5270M 4125M sleep   59    0   0:00:00 0.0% oracle/1
Total: 1 processes, 1 lwps, load averages: 0.03, 0.04, 0.04
   PID USERNAME  SIZE   RSS STATE  PRI NICE      TIME  CPU PROCESS/LWPID      
 16401 oracle   5270M 4125M sleep   59    0   0:00:00 0.0% oracle/1
Total: 1 processes, 1 lwps, load averages: 0.03, 0.04, 0.04
^C
bash-3.00$ jobs
[1]+  Running                 prstat -L -p 16401 5 >server.out &
bash-3.00$ fg %1
prstat -L -p 16401 5 >server.out
^C
bash-3.00$

References

* Topping top in Solaris 8 with prstat

This entry was posted in solaris. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *


*

This site uses Akismet to reduce spam. Learn how your comment data is processed.