Linux Performance Tools To Troubleshoot Problems

last updated in Categories , , , , , , , , ,

Q. I am new to Linux. What tools or commands are recommended to troubleshoot performance related problems?

A. Following are the basic or essential tools that every Linux or UNIX system admin should be aware of:


a) top
b) sar
c) vmstat
d) iostat
e) free

top command

The top program provides a dynamic real-time view of a running system. It can display system summary information as well as a list of tasks currently being managed by the Linux kernel. Type the top command:
$ top

sar command

The sar command is performance monitoring tool. It can find out what Linux is doing all the time. It can generate report and email them to sys admin. In order to use sar you need to install sysstat package. sar displays performance data for:

  • CPU and Queue,
  • Disk I/O
  • Swap and Memory
  • CPU interrupts, Networking and much more

vmstat command

vmstat reports information about processes, memory, paging, block IO, traps, and cpu activity. See the detailed article “How do I find out Linux Resource utilization to detect system bottlenecks?

iostat command

The iostat command is used for monitoring system input/output device loading by observing the time the devices are active in relation to their average transfer rates i.e. it is useful to monitor disk throughput. See the detailed article: “How do I find out Linux CPU utilization?

free command

The free command displays the total amount of free and used physical and swap memory in the system, as well as the buffers used by the kernel. See the detailed article: “Linux check memory usage

Read the man pages of all of these tools. Always remember, you need to spend some time using these tools, and then only you will be able to understand the output of these commands.


Posted by: Vivek Gite

The author is the creator of nixCraft and a seasoned sysadmin, DevOps engineer, and a trainer for the Linux operating system/Unix shell scripting. Get the latest tutorials on SysAdmin, Linux/Unix and open source topics via RSS/XML feed or weekly email newsletter.

11 comment

  1. Hmm… many of these worked, except for sar. It keeps telling me:

    Cannot open /var/log/sysstat/sa15: No such file or directory

    I wonder what the problem is.

    However, some of those other utilities are new to me. It’s nice to learn of them.

  2. These tools seem to be find for looking at the overall performance of a server, but is there a tool that can be used to see specifically at a certain process and measure the impact of that process on the system?

  3. I had the same problem with $ sar. On a CentOS box, install sysstat using $ yum install sysstat if you are missing sar altogether. Then let it run a couple of cron jobs (sa1 and sa2 – sa1 runs every 10 mins, sa2 runs close to midnight). If you can’t wait till midnight then run $ /usr/lib64/sa/sa2 -A but be prepared to see limited information

  4. Q. Lets say you have a remote machine on which your server application runs. The remote server is linux based. Mention what all steps you would do to IDENTIFY and SOLVE each of the following two problems:
    1. The server is not reachable
    2. The server is running slow

  5. Found a cool little ruby script that can be used to send a HTML email of these stats from your server via cron.

    You can read about setting it up here:

    My problem was that our VPS was showing intermittent memory issues. The hosting company automatically reboots the server but doesn’t provide any stats on what might be causing the problem. Logging in after the server is rebooted and not having sar access, left you with no way to tell what was causing the problem. Logging all the output of the above commands in a cron job just didn’t sound right to me. So I thought I’d try this ruby script.

    Setup a little cron job and Bam, we have stats…


  6. Thanks So Much…

    Above written or given info are very helpfulll for all,,,

    Keep it up this good work ….all

    Still, have a question? Get help on our forum!