“In Part 1 of this article, we summarize some of the performance
tools available to Linux developers on Intel architecture. In Part
2 we cover a set of standard performance profiling and analysis
goals and scenarios that demonstrate what tool or combination of
tools to select for each scenario. In some scenarios, the depth of
analysis is also a determining factor in selecting the tool
required. With increasingly deeper levels of investigation, we need
to change tools to get the increased level of detail and focus from
them. This is similar to using a microscope with different
magnification lenses. We start from the smallest magnification and
gradually increase magnification as we focus on a specific area.
top and ps“The top and ps commands are freely available on all Linux
distributions and are generally installed by default. The ps
command provides an instantaneous snapshot of system activity on a
per-thread basis, whereas the top command provides mostly the same
information as ps updated at defined intervals, which can be as
small as hundredths of a second. They are frequently overlooked as
tools for understanding process performance at a system level. For
example, most users tend to use the ps -ef command only to check
which processes are currently executing. However, ps can also print
useful information such as resident set size or number of page
faults for a process. A thorough examination of the ps man pages
reveals these options. Likewise, top can also display all this
information in various formats while updating it in real-time. The
top command window also displays summary information at the top of
the window on a per-CPU basis.”