Discussion:
Overall system utilization vs resource utilization by an application
Kishore Kumar Pusukuri
2011-05-30 18:03:18 UTC
Permalink
Hi,
I would like to measure both system utilization and application (multithreaded application) progress on a 8-core machine running Solaris 10. I am using prstat(1) for measuring the progress of the application in terms of USR and planning to use mpstat(1) for mesauring overall system utilization in terms of (100 - idl). I am running one multithreaded application at a time.

However, I am observing some strange results. For example, when I run application A, its prstat output (average) is as follows. As you can see application A is utilizing system resources for around 67% of the elapsed time. I have used 1 second interval for both the prstat and mpstat.

PID USERNAME USR SYS TRP TFL DFL LCK SLP LAT VCX ICX SCL SIG PROCESS/NLWP
11668 user 67 0.4 0.1 0.0 0.0 20 11 4.0 108 148 206 0 A/9

The following is the output of mpstat -a. As you can see, more or less mpstat also shows that application A is consuming system resources in the lines of the output of prstat.

SET minf mjf xcal intr ithr csw icsw migr smtx srw syscl usr sys wt idl sze
0 6468 0 74 1664 215 4599 926 345 94 0 22223 77 3 0 20 8


However, for another application B, there is a significant difference between prstat and mpstat outputs. As you can see, prstat shows that application B is utilizing system resources for only 17% while mpstat shows it is around 98%.

prstat output:
PID USERNAME USR SYS TRP TFL DFL LCK SLP LAT VCX ICX SCL SIG PROCESS/NLWP
2342 user 17 0.2 0.0 0.0 0.0 70 0.0 13 4 40 49 0 B/43

mpstat output:
SET minf mjf xcal intr ithr csw icsw migr smtx srw syscl usr sys wt idl sze
0 4662 0 32941 34085 248 1032 560 94 81 0 4124 98 2 0 0 8

Please help me to understand the above behavior. And also please let me know if there is any efficient way to measure overall system utilization.

Actually I am working on developing a new scheduling algorithm for Solaris 10. For this, I need to monitor both the progress of the applications and also overall system utilization. I am planning to use USR of prstat as a metric to measure the progress of an application and the output of mpstat i.e., (100 - idl) as a metric for system utilization.
--
This message posted from opensolaris.org
Giovanni Tirloni
2011-05-30 19:10:20 UTC
Permalink
On Mon, May 30, 2011 at 3:03 PM, Kishore Kumar Pusukuri
Post by Kishore Kumar Pusukuri
Hi,
I would like to measure both system utilization and application
(multithreaded application) progress on a 8-core machine running Solaris 10.
I am using prstat(1) for measuring the progress of the application in terms
of USR and planning to use mpstat(1) for mesauring overall system
utilization in terms of (100 - idl). I am running one multithreaded
application at a time.
However, I am observing some strange results. For example, when I run
application A, its prstat output (average) is as follows. As you can see
application A is utilizing system resources for around 67% of the elapsed
time. I have used 1 second interval for both the prstat and mpstat.
PID USERNAME USR SYS TRP TFL DFL LCK SLP LAT VCX ICX SCL SIG PROCESS/NLWP
11668 user 67 0.4 0.1 0.0 0.0 20 11 4.0 108 148 206 0 A/9
The following is the output of mpstat -a. As you can see, more or less
mpstat also shows that application A is consuming system resources in the
lines of the output of prstat.
SET minf mjf xcal intr ithr csw icsw migr smtx srw syscl usr sys wt idl sze
0 6468 0 74 1664 215 4599 926 345 94 0 22223 77 3 0 20
8
However, for another application B, there is a significant difference
between prstat and mpstat outputs. As you can see, prstat shows that
application B is utilizing system resources for only 17% while mpstat shows
it is around 98%.
PID USERNAME USR SYS TRP TFL DFL LCK SLP LAT VCX ICX SCL SIG PROCESS/NLWP
2342 user 17 0.2 0.0 0.0 0.0 70 0.0 13 4 40 49 0 B/43
SET minf mjf xcal intr ithr csw icsw migr smtx srw syscl usr sys wt idl sze
0 4662 0 32941 34085 248 1032 560 94 81 0 4124 98 2 0 0
8
Please help me to understand the above behavior. And also please let me
know if there is any efficient way to measure overall system utilization.
Actually I am working on developing a new scheduling algorithm for Solaris
10. For this, I need to monitor both the progress of the applications and
also overall system utilization. I am planning to use USR of prstat as a
metric to measure the progress of an application and the output of mpstat
mpstat will show overall USR utilization by all processes. is there any
other app that appB might be triggering that would be using the remaining
81% of USR ? You can check that right in prstat.
--
Giovanni Tirloni
Continue reading on narkive:
Loading...