Chapter 8. System Management Tools
Mac OS X comes with many tools for tweaking and spying on various aspects of your system, including memory, kernel modules, and kernel state variables. Some of these tools come directly from BSD, while others are unique to Mac OS X. Most of the BSD-derived utilities have been filtered through Mach and NeXTSTEP on their way to Mac OS X.
For more details on any of these utilities, see their respective manpages.
The top utility displays memory statistics and a list of running processes. It is divided into two regions: the top region contains memory statistics and the bottom region contains details on each process.
TIP: The Mac OS X version of top is based on the one used in early versions of BSD. It was ported to Mach in 1988, to NeXTSTEP in 1990, and to Mac OS X in 1999.
You can specify the number of processes to show by supplying a numeric argument. By default, top refreshes its display every second and sorts the list of processes by process ID (PID) in descending order. You can set top to sort by CPU utilization with -u, and you can specify the refresh delay with the -s option. Figure 8-1 shows the output of top -u 10 (if you wanted to refresh the output every 3 seconds, you could run top -s3 -u 10).
Figure 8-1. Sample output from top
Table 8-1. Memory information displayed by top
Table 8-2. Process information displayed by top
The fs_usage utility shows a continuous display of filesystem-related system calls and page faults. You must run fs_usage as root. By default, it ignores anything originating from fs_usage, Terminal, telnetd, sshd, rlogind, tcsh, csh, or sh.
Figure 8-2 shows the output of fs_usage, which displays the:
latency measures the number of context switches and interrupts, and reports on the resulting delays, updating the display once per second. This utility must be run as root. Example 8-1 shows a portion of its output.
Example 8-1. Partial output from latency
Mon Apr 8 16:30:30 0:01:58 SCHEDULER INTERRUPTS --------------------------------------------- total_samples 64431 179982 delays < 10 usecs 38731 176120 delays < 20 usecs 10763 2885 delays < 30 usecs 2934 447 delays < 40 usecs 1037 190 delays < 50 usecs 718 93 delays < 60 usecs 708 41 delays < 70 usecs 540 32 delays < 80 usecs 420 21 delays < 90 usecs 310 30 delays < 100 usecs 217 20 total < 100 usecs 56378 179879
The SCHEDULER column lists the number of context switches and the INTERRUPTS column lists the number of interrupts.
The sc_usage utility samples system calls and page faults, displaying them onscreen. sc_usage must be run by root or by someone who has superuser privileges. The display is updated once per second. You must specify a PID, a command name, or a program to execute with the -E switch. For example, to monitor the Finder, use sc_usage Finder. Figure 8-2 shows the output of running sc_usage on the Finder. Table 8-3 explains sc_usage's output.
Figure 8-2. sc_usage monitoring the Finder
Table 8-3. Information displayed by sc_usage
The vm_stat utility displays virtual memory statistics. Unlike implementations of vm_stat in other Unix systems, it does not default to continuous display. Instead, it displays accumulated statistics.
To obtain a continuous display, specify an interval argument (in seconds), as in vm_stat 1. Figure 8-3 shows the output of vm_stat with no arguments, and Figure 8-4 shows the output of vm_stat 1. Table 8-4 describes the information that vm_stat displays (the item numbers correspond to the callouts in both figures).
Figure 8-3. vm_stat displaying accumulated statistics
Figure 8-4. vm_stat's continuous output
Table 8-4. Information displayed by vm_stat
Copyright © 2003 O'Reilly & Associates. All rights reserved.