We will introduce you to a few free tools that are available to monitor and manage performance on Unix systems. These tools also provide guidelines on how to diagnose and fix performance problems in the Unix environment.
Unix has following major resource types that need to be monitored and tuned −
- CPU
- Memory
- Disk space
- Communications lines
- I/O Time
- Network Time
- Applications programs
Performance Components
The following table lists out five major components which take up the system time −
Sr.No. | Component & Description |
---|---|
1 | User State CPU The actual amount of time the CPU spends running the users’ program in the user state. It includes the time spent executing library calls, but does not include the time spent in the kernel on its behalf |
2 | System State CPU This is the amount of time the CPU spends in the system state on behalf of this program. All I/O routines require kernel services. The programmer can affect this value by blocking I/O transfers |
3 | I/O Time and Network Time This is the amount of time spent moving data and servicing I/O requests |
4 | Virtual Memory Performance This includes context switching and swapping |
5 | Application Program Time spent running other programs – when the system is not servicing this application because another application currently has the CPU |
Performance Tools
Unix provides following important tools to measure and fine tune Unix system performance −
Sr.No. | Command & Description |
---|---|
1 | nice/renice Runs a program with modified scheduling priority |
2 | netstat Prints network connections, routing tables, interface statistics, masquerade connections, and multicast memberships |
3 | time Helps time a simple command or give resource usage |
4 | uptime This is System Load Average |
5 | ps Reports a snapshot of the current processes |
6 | vmstat Reports virtual memory statistics |
7 | gprof Displays call graph profile data |
8 | prof Facilitates Process Profiling |
9 | top Displays system tasks |
You can use Manpage Help to check complete syntax for each command mentioned here.