The other day I was looking at a web application that was using MongoDB as
its central database. We were analyzing the application for potential
performance problems and inside five minutes I detected what I must consider
to be a MongoDB anti pattern and had a 40% impact on response time. The funny
thing: It was a Java best practice that triggered it.
Analyzing the Application
The first thing I always do is look at the topology of an application to get
a feel for it.
Overall Transaction Flow of the Application
As we see it's a modestly complex web application and it's using MongoDB as
its datastore. Overall MongoDB contributes about 7% to the response time of
the application. I noticed that about half of all transactions are actually
calling MongoDB so I took a closer look.
Flow of Transactions that access MongoDB, showing 10% response time
contribution of MongoDB... (more)
(Note: If you’re interested in WebSphere in a production environment, check
out Michael's upcoming webinar with The Bon-Ton Stores)
Most articles about Garbage Collection ignore the fact that the Sun Hotspot
JVM is not the only game in town. In fact whenever you have to work with
either IBM WebSphere or Oracle WebLogic you will run on a different runtime.
While the concept of Garbage Collection is the same, the implementation is
not and neither are the default settings or how to tune it. This often leads
to unexpected problems when running the first load tests or in the worst case... (more)
In the past few weeks I visited several Cloud and Big Data conferences that
provided me with a lot of insight. Some people only consider the technology
side of Big Data technologies like Hadoop or Cassandra. The real driver
however is a different one. Business analysts have discovered Big Data
technologies as a way to leverage tons of existing data and ask questions
about customer behavior and all sorts relationships to drive business
strategy. By doing that they are pushing their IT departments to run ever
bigger Hadoop environments and ever faster real-time systems.
What's int... (more)
Anyone who ever monitored or analyzed an application uses or has used
averages. They are simple to understand and calculate. We tend to ignore just
how wrong the picture is that averages paint of the world. To emphasis the
point let me give you a real-world example outside of the performance space
that I read recently in a newspaper.
The article was explaining that the average salary in a certain region in
Europe was 1900 Euro's (to be clear this would be quite good in that
region!). However when looking closer they found out that the majority,
namely 9 out of 10 people, only ea... (more)
In my last article I explained what a major Garbage Collection is. While a
major Collection certainly has a negative impact on performance it is not the
only thing that we need to watch out for. And in case of the CMS we might not
always be able to distinguish between major and minor GC. So before we start
tuning the garbage collector we first need to know what we want to tune
for. From a high level there are two main tuning goals.
Execution Time vs. Throughput
The first thing we need to clarify if we want to minimize the time the
application needs to respond to a request or if we... (more)