Performance Tuning WebWizard
Details of the nmon's output
Main Screen
Top line
details the version of nmon the machine and the current time.
CPU: Sys 36.0% Wait 60.0% User 4.0% Idle 0.0%
This tells you what the processor is doing it is one of the following:
Sys
- this is running the UNIX/AIX Operating System Kernel which includes scheduling processes, file I/O, device drivers and running the network.
Wait
- this is idle time while waiting for Disk I/O to complete.
User
- this is user processes i.e. your applications and database.
Idle
- this is when the CPU has nothing to do i.e. waiting to users to request some action
Underneath this is a graphical representation of the same CPU stats
Sys =
=
Wait =
W
User =
>
Refresh: 3.0
This means the screen is updated once every 3 seconds (CPU willing) - hit SPACE to update now.
Memory Real Virtual
This section describes the Real (physical RAM) and Virtual (paging space) memory
Free
- means that it is not in use. AIX slowly uses Real memory if it is used for caching files and does not free it unless it is low on free space. This means that there is free memory but it will not show up here.
Files
- AIX slowly uses Real memory if it is used for caching files and does not free it unless it is low on free space. This reduces I/O and increases performance. But it means that there appears to be less and less free memory the longer AIX is running.
Total
- for Real this is the RAM in the machine. For Virtual its the amount of paging space.
Note that typically the virtual memory should be about 2 times real memory.
IO (kB/s) read write busy%
This is the Disk I/O stats. The various parts are as follows:
Disk name
- like hdisk0 is the particular physical disk in the system.
Read
- the is the K bytes per second reading disk blocks.
Write
- the is the K bytes per second writing disk blocks.
Busy%
- the is the percentage of the time the disk was busy.
Paging (4kB)
This section includes the paging activity. Paging is a result of running out of Real memory so that currently unused parts of Real memory are written to disk to make free room in memory.
pgfaults - the number of time AIX found it needed a page of data or program in memory and it was not found in memory.
pgin - the number of times per second that a page needed to be read in to be used
pgout - the number of times per second that a page needed to be read out to make more free space
pgsin - paging to actual paging space (paging can also be done to binary files or memory mapped files in the normal filesystem)
pgsout - ditto
If there is sustained pgfaults in the 1000's then this system is paging too much and Real memory is required.
Process Events
These are the system calls and interrupts that the AIX kernel is getting each second. Non kernel internal experts are not expected to understand these.
pswitch
- process switches meaning AIX starts running a different process.
syscall
- system call i.e. an application requested services of the kernal.
read
- read system call to read data from a file (usefull if a poor application make lots of very small reads it is highlighted here).
write
- write system call to write data from a file (see above comment)
fork
- fork system call which clones a new process from the current one (the only way to start a new process in UNIX).
exec
- makes the current process run a different program (usually called straight after a fork).
rcvint
- receive interrupt usually from a terminal when a user types a key (UNIX's design means it echo's even charater for every terminal)
xmtint
- transmit interrupt usually to a terminal when the output buffer can acept more data for the screem
mdmint
- no longer used in UNIX !!!
File/TTY-IO
These are the internal functions of the UNIX kernel which implement File I/O and the statistics are the calls per second. Non kernel internal experts are not expected to understand these.
iget
- inode lookups
namei
- translations of file/directoy name to inode number
dirblk
- fetch directory data blocks to scan the filenames
readch
- characters read from any file
writech
- characters written to any file
ttyrawch ttycanch ttyoutch
- tty buffering sizes
Clnt Serv NFS/s
These are the UNIX internal functions that implement the NFS service from this machine. Non kernel internal experts are not expected to understand these.
call
- NFS function called
retr
- NFS function returned
getattr
- request for a file attribute (owner,perm,dates)
lookup
- request to locate a file by name
read
- read data
write
- write data
other
- miscellaneous other calls
Netw Read Write kB/s
These are network statistics in K bytes per second.
name
- lo=loopback, tr=TokenRing, en=Ethernet, cs=SP-switch
read
- packet received
write
- packet send
Disk Screen
This screen has the full detail about the Disk I/O subsystem.
Disk name
- like hdisk0 is the particular physical disk in the system.
Read
- the is the K bytes per second reading disk blocks.
Write
- the is the K bytes per second writing disk blocks.
rsize
- the average size of the reads in the last second.
wsize
- the average size of the writes in the last second.
xfers
- the number of transfers (both read and writes) in the last second.
seeks
- the number of disk seeks (head movements to the next block) in the last second.
blksize
- the blocksize?
xrate
- ?
Busy%
- the is the percentage of the time the disk was busy.
Typically, the busy% should be
below 30% for fast access
between 30% and 60% is a busy disk
above 60% is slowing the machine down as disk I/O will have to wait on the disk queue
at 100% a definite bottle neck on the system
Top Screen
This screen has the full detail about the Top Processes.
PID
- process ID.
USER
- the user who started the process.
PRI
- priority - lower numbers means high priority.
NICE
- "nice" value used in priority calculation to make some processes "less favoured" i.e. background jobs. High numbers means low priority.
SIZE
- size of the process in memory (code, data, stack, etc.)
RES
- "resident set" means the amount of the process actually in memory (the rest being in virtual memory i.e. paging space or filesystem).
STAT
- process state i.e runable, asleep (waiting), etc.
TIME
- number of minutes and seconds of CPU time used so far.
CPU%
- percentage of the CPU used in the last second.
COMMAND
- the command that started the process. Note "kernel(wait)" is the process run if there is nothing else to do i.e. the CPU is idle.
Network Screen
These are detailed network statistics in K bytes per second.
name
- lo=loopback, tr=TokenRing, en=Ethernet, cs=SP-switch
read
- K bytes per second received
write
- K Bytes per second send
packin
- packet received
packout
- packet send
insize
- average size in bytes of packet received
outsize
- average size in bytes of packet send
SMP statistics
This screen has the full detail about the SMP processes.
CPU
- the number of the CPU
USER KERN WAIT IDLE%
- the percentage of the processor time as in the main screen but here split out for each CPU.
PSW
- Processor status word - Kernel experts only
SYSCALL
- number of system calls as for the main screen
WRITE READ WRITEkb READkb
- Disk I/O for each processor