InfoQ

InfoQ

News

My Bookmarks

Login or Register to enable bookmarks for unlimited time.

The content has been bookmarked!

There was an error bookmarking this content! Please retry.

Article: The Box: A Shortcut to finding Performance Bottlenecks

Posted by Floyd Marinescu on Sep 24, 2007

Sections
Architecture & Design
Topics
Performance & Scalability ,
Architecture
Tags
JVM ,
Threading ,
Performance Evaluation
Quite often performance problems will be reported with some very antidotal comments that do nothing to help you understand where to start looking. Faced with this dilemma, it is not uncommon for teams to start guessing at the root cause.

Performance tuning specialist Kirk Pepperdine has shared one of his own approaches for starting to find the true cause of performance problems: "the box" - a little diagram that is an abstraction of a complete system. The box is a reminder of the true causes of performance bottlenecks.

Read  The Box: A Shortcut to finding Performance Bottlenecks.

The has 4 layers: People, Application, Java Virtual Machine, and Hardware. Each of these layers has a role in systems performance, and Kirk talks about when   The purpose of the box is to eliminate guessing by showing us how to sequence an investigation.

Kirk advocates a bottom to top investigative process, the goal of which is to eliminate as many potential sources for the bottlenecks as can possibly eliminated before we start looking at the code.
So what's new? by James Richardson Posted
Re: So what's new? by Dmytro Dyachuk Posted
Re: So what's new? by Kirk Pepperdine Posted
Re: So what's new? by soorej mg Posted
The box is ok, but really you shouldn't be in this position by Morten Udnæs Posted
Re: The box is ok, but really you shouldn't be in this position by Kirk Pepperdine Posted
  1. Back to top

    So what's new?

    by James Richardson

    This chat doesn't really deserve its own nomenclature does it? "The Box" == "The box of obvious stuff".
    - Look at system load
    - Use some system tools
    - Java has gc.
    - creating zillions of threads can be harmful.

  2. Back to top

    Re: So what's new?

    by Dmytro Dyachuk

    The author did not mention that using synchronized methods locks the whole instance of the class and very often causes significant performance degradation.

    WBR, Dmytro

  3. Back to top

    The box is ok, but really you shouldn't be in this position

    by Morten Udnæs

    Handling performance requirements is vital part of any software development effort. If you end up needing the "box" someone hasn't done their job properly.

    In terms of fixing bad performance, I don't agree that you should go from bottom and upwards. It doesn't help to tune the hardware, VM and database of an application thats badly designed/constructed. Usually you have to work both ways (both at application level and infrastructure level) at the same time, and choose what gives most effect and lowest risk.

    Final advice: Get real volumes of data and measure!

  4. Back to top

    Re: The box is ok, but really you shouldn't be in this position

    by Kirk Pepperdine

    Handling performance requirements is vital part of any software development effort. If you end up needing the "box" someone hasn't done their job properly.


    I think this comment is a bit unfair. It is like saying that bugs are because someone hasn't done their job properly. There are many reasons why performance problems creep into for many reasons. For example, concurrency issues often can't be found until you start integration testing. At that point you maybe into a full diagnostic effort on the application. This is a normal course of development in an imperfect world

    In terms of fixing bad performance, I don't agree that you should go from bottom and upwards. It doesn't help to tune the hardware


    The article isn't about tuning, it is about a process of diagnostics, understanding that you really do have a problem with the DB as well as determining if the problem is caused by your application or by the DB its self.

    The process is about ensuring consistency of results in your tuning efforts so that you're not wasting time fixing phantom problems. This, IME is the lowest risk way to proceed.

    Kind regards,
    Kirk

  5. Back to top

    Re: So what's new?

    by Kirk Pepperdine

    This chat doesn't really deserve its own nomenclature does it? "The Box" == "The box of obvious stuff".


    At one time I might have agreed with this. However I have found that people have found this visualization of the *obviously* useful. It is a rough abstraction, it is flawed but even so....

    Kind regards,
    Kirk

  6. Back to top

    Re: So what's new?

    by soorej mg

    Hi Kirk,

    This article is really useful!!..

Educational Content

Attila Szegedi on JVM and GC Performance Tuning at Twitter

Attila Szegedi talks about performance tuning Java and Scala programs at Twitter: how to approach GC problems, the importance of asynchronous I/O, when to use MySQL/Cassandra/Redis, and much more.

10 tips on how to prevent business value risk

One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.

Interview: Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives

InfoQ spoke to the authors of Software Systems Architecture on a couple of new topics, the System Context viewpoint and Agile, which have been added to the second edition.

Beauty Is in the Eye of the Beholder

Alex Papadimoulis discusses ugly code, where it comes from, how to avoid it, and how to get rid of it.

Architecting Visa for Massive Scale and Continuous Innovation

John Davies examines Visa’s architecture and shows how enterprises have architected complex integrations incorporating Hadoop, memcached, Ruby on Rails, and others to deliver innovative solutions.

Max Protect: Scalability and Caching at ESPN.com

Sean Comerford unveils ESPN.com’s architecture, what components are used and why, and the current changes the website goes through.

The Seven Deadly Sins of Enterprise Agile Adoption

Are there repeated patterns of failure on Enterprise Agile Enablement efforts? Sanjiv and Arlen discuss Seven Deadly Sins to avoid when adopting Agile in an enterprise.

Questions for an Enterprise Architect

Erik Dörnenburg answers: What is Enterprise and Evolutionary Architecture?, discussing 4 issues: Turning strategy into execution, Ensuring conformance, Where do the architects sit? Buying or building?