prustat displays %CPU, %Mem, $Disk and %Net by PID. This has been made possible by DTrace in Solaris 10. The following is a demonstration of prustat, # prustat -t10 5 PID %CPU %Mem %Disk %Net COMM 22301 54.30 3.15 0.00 0.00 setiathome 440 2.24 45.36 0.00 0.00 Xsun 22272 30.26 0.31 0.00 0.00 perl 2618 0.26 14.34 0.00 0.00 mozilla-bin 582 1.27 2.16 0.00 0.00 gnome-terminal 576 0.02 2.80 0.00 0.00 nautilus 2299 0.21 1.99 0.00 0.00 acroread 578 0.35 1.46 0.00 0.00 gnome-panel 574 0.37 1.31 0.00 0.00 metacity 6504 0.00 1.23 0.00 0.00 nautilus-throbb PID %CPU %Mem %Disk %Net COMM 22301 57.02 3.15 0.00 0.00 setiathome 440 2.35 45.36 0.00 0.00 Xsun 22272 26.99 0.31 0.00 0.00 perl 2618 0.26 14.34 0.00 0.00 mozilla-bin 22321 3.48 1.46 0.00 0.00 dtrace 582 1.29 2.16 0.00 0.00 gnome-terminal 576 0.02 2.80 0.00 0.00 nautilus 2299 0.21 1.99 0.00 0.00 acroread 578 0.36 1.46 0.00 0.00 gnome-panel 574 0.39 1.31 0.00 0.00 metacity ^C Here there are two programs competing for the CPU: setiathome and perl. By default we sort on the sum of all four columns, which is why Xsun at 45% is displayed higher than perl at 30%. The "-t10" option prints only the top 10 lines, and the "5" is the interval in seconds. The following demonstrates measuring disk activity by process. We run at 5 second intervals again, but this time only print the top 5 lines, # prustat -t5 5 PID %CPU %Mem %Disk %Net COMM 440 14.77 45.39 0.00 0.00 Xsun 2618 0.58 14.34 0.00 0.00 mozilla-bin 582 2.76 2.16 0.00 0.00 gnome-terminal 22301 0.01 3.16 0.00 0.00 setiathome 574 1.71 1.31 0.00 0.00 metacity PID %CPU %Mem %Disk %Net COMM 22430 1.29 0.19 70.43 0.00 find 440 11.93 45.39 0.00 0.00 Xsun 2618 0.51 14.34 0.00 0.00 mozilla-bin 22429 3.78 1.48 0.00 0.00 dtrace 582 2.47 2.16 0.00 0.00 gnome-terminal PID %CPU %Mem %Disk %Net COMM 22430 2.84 0.19 89.73 0.00 find 440 9.55 45.39 0.00 0.00 Xsun 2618 0.47 14.34 0.00 0.00 mozilla-bin 22429 3.06 1.50 0.00 0.00 dtrace 582 2.03 2.16 0.00 0.00 gnome-terminal PID %CPU %Mem %Disk %Net COMM 22430 3.87 0.19 89.61 0.00 find 440 7.68 45.39 0.00 0.00 Xsun 2618 0.44 14.34 0.00 0.00 mozilla-bin 22429 2.47 1.50 0.00 0.00 dtrace 582 1.69 2.16 0.00 0.00 gnome-terminal ^C A find command was executed in another window, and can be seen to utilise the disks at 89%. The first output is the summary since boot data, and since DTrace is only active during this program - the %Disk and %Net columns are all zero for this first output. The following is a demonstration of prustat measuring network activity, # prustat -t5 -snet 10 PID %CPU %Mem %Disk %Net COMM 90 0.00 0.09 0.00 0.00 syseventd 443 0.00 0.13 0.00 0.00 snmpd 102 0.00 0.00 0.00 0.00 picld 10096 0.00 0.35 0.00 0.00 bash 445 0.00 0.00 0.00 0.00 dtlogin PID %CPU %Mem %Disk %Net COMM 22554 0.00 0.00 2.83 11.76 rcp 22553 0.00 0.00 2.43 11.47 rcp 4789 1.17 0.45 0.00 0.20 vncviewer 440 4.89 45.39 0.00 0.00 Xsun 90 0.00 0.09 0.00 0.00 syseventd PID %CPU %Mem %Disk %Net COMM 4789 0.82 0.45 0.00 0.02 vncviewer 12047 0.01 0.13 0.00 0.01 rlogin 440 8.94 45.39 0.00 0.00 Xsun 12046 0.00 0.27 0.00 0.00 rlogin 90 0.00 0.09 0.00 0.00 syseventd ^C Using "-snet" changes the sort key to be %Net. Above we can see two rcp's were executed, and there is some vncviewer traffic. prustat has many other options. It's usage as of version 0.50 is, # prustat -h prustat ver 0.50, demo release USAGE: prustat [-cehinuwxz] [-p PID] [-s sort] [-t top] [interval] [count] prustat # %Utilisation prustat -i # + I/O stats prustat -u # + USR/SYS times prustat -x # + Context Switchs prustat -c # Clear screen prustat -w # Wide output prustat -z # Skip zero lines prustat -e # Extra precision prustat -p PID # this PID only prustat -s sort # sort on pid|cpu|mem|disk|net|utime|vctx|... prustat -t lines # print top number of lines only eg, prustat 2 # 2 second samples (first is historical) prustat 10 5 # 5 x 10 second samples prustat -t 8 10 5 # 5 x 10 second samples, top 8 lines only prustat -ct 20 5 # 20 lines with screen refresh each 5 seconds prustat -iuxct 5 10 # multi output, all reports every 10 seconds prustat -ct 22 -s cpu 5 # 22 lines, sort by cpu, every 5 secs prustat -ct 22 -s mem 5 # 22 lines, sort by mem, every 5 secs prustat -ct 22 -s net 5 # 22 lines, sort by network, every 5 secs prustat -ct 22 -s disk 5 # 22 lines, sort by disk, every 5 secs The following demonstrates some of the other style of reports, # prustat -i -t5 5 PID %CPU %Mem %Disk %Net INBLK OUBLK CHAR-kb COMM 3 0.22 0.00 0.00 0.00 762 46661 0 fsflush 440 2.82 45.39 0.00 0.00 37139 7 41802 Xsun 2 0.00 0.00 0.00 0.00 0 8470 0 pageout 22587 3.43 0.19 0.00 0.00 3666 0 928 find 2618 0.30 14.34 0.00 0.00 2369 1042 222432 mozilla-bin PID %CPU %Mem %Disk %Net INBLK OUBLK CHAR-kb COMM 22587 6.30 0.19 64.85 0.00 1476 0 1384 find 22592 3.76 1.47 0.00 0.00 9 0 54 dtrace 3 0.54 0.00 0.58 0.00 6 1 0 fsflush 578 0.36 1.46 0.44 0.00 3 0 8 gnome-panel 576 0.02 2.80 0.28 0.00 1 0 0 nautilus PID %CPU %Mem %Disk %Net INBLK OUBLK CHAR-kb COMM 22587 8.95 0.19 50.98 0.00 1381 0 1024 find 578 0.35 1.46 0.19 0.00 1 0 5 gnome-panel 90 0.00 0.09 0.00 0.00 0 0 0 syseventd 443 0.00 0.13 0.00 0.00 0 0 0 snmpd 102 0.00 0.00 0.00 0.00 0 0 0 picld ^C # prustat -u -t5 5 PID %CPU %Mem %Disk %Net USR SYS WAIT COMM 22301 68.95 3.16 0.00 0.00 295 0 50 setiathome 22587 9.62 0.19 0.00 0.00 0 3 5 find 440 1.68 45.39 0.00 0.00 8519 1394 2928 Xsun 582 1.16 2.16 0.00 0.00 2079 413 3197 gnome-terminal 3 0.38 0.00 0.00 0.00 0 4807 119 fsflush PID %CPU %Mem %Disk %Net USR SYS WAIT COMM 22301 68.24 3.16 0.00 0.00 5 0 2 setiathome 22587 11.62 0.19 68.97 0.00 0 1 1 find 22597 3.73 1.49 0.00 0.00 0 0 2 dtrace 440 1.28 45.39 0.00 0.00 0 0 0 Xsun 582 0.86 2.16 0.00 0.00 0 0 0 gnome-terminal PID %CPU %Mem %Disk %Net USR SYS WAIT COMM 22301 69.92 3.16 0.00 0.00 3 0 1 setiathome 22587 12.40 0.19 70.63 0.00 0 0 0 find 22597 3.00 1.49 0.00 0.00 0 0 0 dtrace 440 1.14 45.39 0.00 0.00 0 0 0 Xsun 582 0.77 2.16 0.00 0.00 0 0 0 gnome-terminal ^C # prustat -x -t5 5 PID %CPU %Mem %Disk %Net VCTX ICTX SYSC COMM 440 1.20 45.39 0.00 0.00 42846698 2070546 123124375 Xsun 2299 0.38 1.99 0.00 0.00 28365314 25863 84033882 acroread 593 0.04 1.05 0.00 0.00 18200115 3149 17579253 mixer_applet2 578 0.36 1.46 0.00 0.00 12093599 49394 51120767 gnome-panel 582 0.95 2.16 0.00 0.00 7039076 2703237 17032806 gnome-terminal PID %CPU %Mem %Disk %Net VCTX ICTX SYSC COMM 22587 16.19 0.19 44.14 0.00 2681 331 58362 find 22301 65.92 3.16 0.00 0.00 0 2722 3 setiathome 2299 0.38 1.99 0.00 0.00 404 8 1182 acroread 22602 3.83 1.50 0.00 0.00 20 375 1914 dtrace 2618 0.32 14.34 0.00 0.00 231 2 524 mozilla-bin PID %CPU %Mem %Disk %Net VCTX ICTX SYSC COMM 22587 16.89 0.19 43.79 0.00 1012 139 34649 find 22301 67.48 3.16 0.00 0.00 0 1083 2 setiathome 2299 0.38 1.99 0.00 0.00 240 4 721 acroread 419 0.06 0.13 0.00 0.00 213 1 1065 vold 2618 0.32 14.34 0.00 0.00 138 2 308 mozilla-bin And prustat can be run in a similar style to the prstat command, where the screen is cleared and updated, # prustat -ct 20 5 ---------------------------------------------------------------------- | PID %CPU %Mem %Disk %Net COMM | | 22301 78.84 3.16 0.00 0.00 setiathome | | 22635 4.09 0.20 69.11 0.00 tar | | 440 2.76 45.39 0.00 0.00 Xsun | | 2618 0.31 14.34 0.00 0.00 mozilla-bin | | 22640 3.87 1.49 0.12 0.00 dtrace | | 582 2.04 2.16 0.00 0.00 gnome-terminal | | 576 0.02 2.80 0.00 0.00 nautilus | | 2299 0.33 1.99 0.00 0.00 acroread | | 22641 0.00 0.00 1.84 0.00 upsmonitor | | 578 0.37 1.46 0.00 0.00 gnome-panel | | 574 0.41 1.31 0.00 0.00 metacity | | 6504 0.00 1.23 0.00 0.00 nautilus-throbb | | 593 0.04 1.05 0.00 0.00 mixer_applet2 | | 556 0.00 1.05 0.00 0.00 gconfd-2 | | 549 0.00 0.94 0.00 0.00 gnome-session | | 6510 0.00 0.93 0.00 0.00 nautilus-text-v | | 591 0.02 0.83 0.00 0.00 galf-server | | 21551 0.00 0.56 0.00 0.00 dtterm | | 4789 0.10 0.45 0.00 0.00 vncviewer | | 553 0.00 0.43 0.00 0.00 gnome-volcheck | ----------------------------------------------------------------------