Global Sources
EE Times-India
Stay in touch with EE Times India
EE Times-India > Processors/DSPs

Understanding the common tools for Linux-based systems (Part 2)

Posted: 16 Nov 2009     Print Version  Bookmark and Share

Keywords:Linux OS  Intel Linux tools  performance analysis 

In addition to having access to the right set of tools in any performance analysis or profiling exercise, it's been our experience that there are two critical pieces of information that need to be present from the start:

1. What is my expected system behaviour? In other words, how do I expect the system to behave under normal conditions? In a structured project environment, this translates to a very clearly-defined set of requirements at a system level as well as, possibly, at an individual component or application level.
2. What is my problem statement? Simplistically, this can be one of two possibilities:
• My system is not behaving according to expectations.
• My system is behaving as expected, but I want to know what "makes it tick".

I want to be able to answer questions such as: "Where are my CPU cycles being spent?", "How much memory am I really using?" This information can be used to understand any inefficiency in my algorithm or problem areas. This information may also be used to accurately predict how the system will scale to support higher workloads.

When Items 1 and 2 having been met, you have effectively determined "where you are" and "where you want to be." For the purposes of this article, we will focus on scenarios in which the system is not behaving according to specifications, rather than measurement on a working system.

From experience, it is critical to apply a structured method at the start of any performance analysis, since any activity with an inappropriate tool can be a complete waste of time. Performance can be broadly affected by issues in three distinct areas: CPU occupancy, memory usage and I/O.

As a first step, it is absolutely essential to determine which area your problem is coming from since the tools mainly focus on one of these three areas to provide any kind of detailed data. Hence, the first step is always to use general tools that provide a high level view of all three areas simultaneously.

Once this has been done, the developer can delve deeper into a specific area using tools with an increasing level of detail and potentially more and more invasiveness.

It is advised not to make any assumptions regarding the category the investigated problem falls under and skipping the first high-level analysis. Assumptions such as these have proven in the past to be counter-productive on numerous occasions.

When doing performance analysis on a working system to understand what makes it tick, it is important to take into account a number of things. Avoid any over-kill.

For example, if only a simple CPU performance measurement of a working system is required, it may be sufficient to use a non-invasive high-level analysis tool such as ps. The depth of analysis should be determined "a priori" by all interested parties.

View the PDF document for more information.

Comment on "Understanding the common tools for L..."
*  You can enter [0] more charecters.
*Verify code:


Visit Asia Webinars to learn about the latest in technology and get practical design tips.


Go to top             Connect on Facebook      Follow us on Twitter      Follow us on Orkut

Back to Top