Explain System Performance in unix
The purpose of this tutorial is to introduce the performance analyst to some of the free tools available to monitor and manage performance on UNIX systems, and to provide a guideline on how to diagnose and fix performance problems in Unix environment.
UNIX has following major resource types that need to be monitored and tuned −
Performance Components
There are following major five component where total system time goes −
Component | Description |
---|---|
User state CPU | The actual amount of time the CPU spends running the users program in the user state. It includes time spent executing library calls, but does not include time spent in the kernel on its behalf. |
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 the use of blocking for I/O transfers. |
I/O Time and Network Time | These are the amount of time spent moving data and servicing I/O requests |
Virtual Memory Performance | This includes context switching and swapping. |
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 −
Command | Description |
---|---|
nice/renice | Run a program with modified scheduling priority |
netstat | Print network connections, routing tables, interface statistics, masquerade connections, and multicast memberships |
time | Time a simple command or give resource usage |
uptime | System Load Average |
ps | Report a snapshot of the current processes. |
vmstat | Report virtual memory statistics |
gprof | Display call graph profile data |
prof | Process Profiling |
top | Display system tasks |