Occasionally, the AIX Performance Group is asked about the "overhead" of the performance tools. This is certainly a meaningful question, because some of the tools can add significantly to system workload. It is also a difficult question to answer, because the cost of running the tools is often proportional to some aspect of the workload. The following sections contain brief, informal discussions of the speed and resource use of the main performance monitoring and tuning facilities. These discussions are intended to give a general sense of the relative cost of various tools--not to constitute a rigorous description of tool performance. Most of the experiments were performed on AIX Version 3.2.5 on a RS/6000 Model 320. Exceptions are noted where they occur.
filemon | Most of filemon's load on the system is its CPU-time consumption. In a CPU-saturated environment with little I/O, filemon slowed a large compile by about 1%. In a CPU-saturated environment with a high disk-output rate, filemon slowed the writing program by about 5%. |
fileplace | Most variations of this command use less than .3 seconds of CPU time. |
iostat | This command uses about 20 milliseconds of CPU time for each periodic report generated. |
lsattr | This command is I/O-limited. The first time it is run, it may take 2 to 4 seconds to read the necessary data. Subsequent executions on a lightly loaded system will use about .5 seconds of CPU time. |
lslv | This command is CPU-limited. As an example, the command:
lslv -p hdisk0 hd1 consumes about .5 seconds of CPU time. |
netpmon | With a moderate, network-oriented workload, netpmon increases overall CPU utilization by 3-5%. In a CPU-saturated environment with little I/O of any kind, netpmon slowed a large compile by about 3.5%. |
netstat | Most of the variations of this command use less than .2 seconds of CPU time. |
nfsstat | Most of the variations of this command use less than .1 seconds of CPU time. |
PDT | Daily data collection takes several elapsed minutes, but most of that time is spent sleeping. Total CPU consumption is normally less than 30 seconds. |
ps | The CPU time consumed by this command varies with the number of processes to be displayed, but usually does not exceed .3 seconds. |
svmon | The svmon -G command uses about 3.2 seconds of CPU time. An svmon command for a single process (svmon -P processid), takes about .7 seconds of CPU time. |
tprof | Since tprof uses trace, it causes some system overhead. tprof only enables one trace hook, however, so its overhead is less than that of a full trace. For example, tprof degraded the performance of a large compile by less than 2%. |
trace | The overhead added by trace varies widely, depending on the workload and the number of hook IDs being collected. As an extreme case, a long-running, CPU-intensive job in an otherwise idle system took 3.2% longer when trace was running with all hooks enabled. |
vmstat | This command uses about 40 milliseconds of CPU time for each report generated. The vmstat -s command requires about 90 milliseconds of CPU time. |