measuring system performance
Once the system is running with a full load, check the system activity for signs of trouble. This can be done by using sar (system activity
reporter).
With the maximum number of users actively using the system, run this
command:
$ sar -o sarfile 5 60
This takes 60 samples, each one five seconds apart (for a total of five
minutes), saving the binary output to sarfile. sar
puts very little load on the system, so taking these samples is not disruptive
for the users. sar prints the CPU utilization at each sample,
while saving the system data in sarfile.
After sar has collected the data, produce a report using the
command:
$ sar -Af sarfile>sar.report
sar reads the binary sarfile and creates a
sar.report file. Option -A means
all.
You may want to collect system statistics to help in
tuning the kernel configuration parameters for optimal performance. Run a
script once during peak system usage, and once during medium usage of the
system.
Run the script while there are active users on the system.
The script should
collect system statistics for several minutes.
Ideally, the users would be running the same programs that comprise
their normal daily activity.
To analyze system performance, review the listing of the final report.
For more details about kernel parameters, see the appendix System
Parameters, in the HP manual System Administration
Tasks
interpreting the performance report
Examine sar.report, looking for the following signs of
trouble. Check the report in the following order, because some symptoms mask
others. For example, a system that is memory bound will have excessive disk
activity due to swapping, but the solution is not to adjust the disks. Once you
have a diagnosis, do not proceed to the next step in the process. For example,
fix a memory bound system by adding memory, then make a new sar
run to check for other performance problems.
- If swpot/s (swapouts per second) is frequently greater than
one, the system is memory bound. If swpocc (percent swap queue is
occupied) is greater than five, the system is memory bound. In either case, add more memory to the system.
- If %rcache is frequently less than 90 or %wcache
is frequently less than 65, the buffer cache is too small. Increase the value of the kernel's bufpages parameter and generate a new kernel.
- If %busy is greater than 50 for any disk, that disk has
become a bottleneck. (Another way to identify a disk bottleneck is to use "avque
>= 2".) Move one or more files or file systems from that disk to a
lesser used disk or to a new disk. See the Disk Bottleneck Due to a Single
Hot File section in this chapter.
- If %idle is frequently equal to zero, or if runq-sz
(runqueue size) is frequently high (eight or more), the system is CPU bound. If
system throughput is less than desired, upgrade to a faster processor or reduce
computational load on the system.
- Check the capacity of the system tables for processes, inode cache, and
file descriptors. These are labeled proc-sz, inod-sz,
and file-sz. If the current utilization is too close to the
maximum available, increase the corresponding HP-UX kernel parameter (nproc,
ninode, or nfile). When increasing nfile,
increase
nflocks proportionally.
additional notes
- You can determine if you are swapping by using glance
(refer to the man page on
glance
for information). Memory utilization is one of the dynamically updated bar
graphs at the top of the main screen.
- Increasing the size of the buffer cache takes memory away from the pool of
free memory, so be sure that you do not force the system to start swapping or
paging. Thus, increasing the size of the buffer cache may require installing
more memory on the system.
- You can reduce computational load on the system by changing some
operational procedures (such as doing backups at night) or tuning the
application to make it more efficient. Profile the application software using
-eprof to look for performance bottlenecks
using vmstat
The vmstat utility gives you statistics on virtual memory
utilization. The
po field indicates the number of pages paged
out
in the last interval. It is reasonable to set a five second interval, using the
command vmstat 5. Watch this display for a few minutes. If po
is consistently non-zero, you could have a problem with memory pressure. Add
memory, or decrease the size and/or number of applications or users.
using netstat
Use netstat to look at socket connections when running
your application.
Example: netstat -d tcp
Java™ and all Java-based trademarks and logos are trademarks or registered trademarks of Sun
Microsystems, Inc. in the U.S. and other countries. Hewlett-Packard is independent of Sun
Microsystems, Inc.
|