Performance Troubleshooting

From ConShell
Jump to navigation Jump to search

Useful commands for investigating & improving system performance problems.

Linux

atop

atop - AT Computing’s System & Process Monitor

This utility is far more feature rich than plain top.

top

  • Press '1' to see all CPUs.
  • Press 'c' to view full command lines.
  • Press 'H' show threads
  • Press 'r' renice a process (e.g. -19 to boost it's priority in the scheduler)

vmstat

vmstat 5

Watch for high numbers in these columns

  • procs/b - blocked processes, anything more than 0 is bad (why?)
  • cpu/wa - wait indicates system is I/O bound
  • system/cs - context switches, system is CPU bound... to many processes. Consider tickless or kernel divider options?

iostat

iostat comes with the sysstat package. the await and %util numbers from iostat -x are probably the best indicators as to how a disk is doing

iostat -dx 3

Another interesting command that lets you see I/O to all devices at once & over time is

watch iostat -p ALL

FreeBSD

FreeBSD also has top, ps, vmstat and iostat. However there can be subtle to significant differences in the output and usage.

iostat -h 5
      tty             ad0             cpu
 tin tout  KB/t tps  MB/s  us ni sy in id
   0    7 22.01   3  0.07   1  0  1  0 99
   0   18 27.20   4  0.11   0  0  1  1 98
   0   56 64.00   0  0.02   2  0  1  0 97
   0    6 26.74   3  0.07   1  0  1  1 97
   0    6  0.00   0  0.00   1  0  1  1 98


See Also