Saturday, April 16, 2016

Linux System Performance

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 −
  • CPU
  • Memory
  • Disk space
  • Communications lines
  • I/O Time
  • Network Time
  • Applications programs

Performance Components

There are following major five component where total system time goes −
ComponentDescription
User state CPUThe 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 CPUThis 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 TimeThese are the amount of time spent moving data and servicing I/O requests
Virtual Memory PerformanceThis includes context switching and swapping.
Application ProgramTime 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 −
CommandDescription
nice/reniceRun a program with modified scheduling priority
netstatPrint network connections, routing tables, interface statistics, masquerade connections, and multicast memberships
timeTime a simple command or give resource usage
uptimeSystem Load Average
psReport a snapshot of the current processes.
vmstatReport virtual memory statistics
gprofDisplay call graph profile data
profProcess Profiling
topDisplay system tasks
You can use Manpage Help to check complete syntax for each command mentioned here.

No comments:

Post a Comment