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)
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)
Traditional Enterprise Database vendors often bring up the lack of
professional monitoring and management tool support for NoSQL solutions.
Their argument is that enterprise applications require sophisticated tuning
and monitoring of the database in order to ensure a performant and smooth
operation. NoSQL Vendors, while arguing that this lack is not enough to favor
RDBMS over their respective solutions, do agree. Several vendors try to
differentiate themselves by providing enterprise level monitoring and
management software, for example, Cassandra, MongoDB, HBase or others. Both ... (more)
An eCommerce site that crashes seven times during the Christmas season being
down for up to five hours each time it crashes is a site that loses a lot of
money and reputation. It happened to one of our customers who told this story
at our annual performance conference earlier this month. Among the several
reasons that led to these crashes I want to share more details on one of them
that I see more often with other websites as well. Load balancers on a
round-robin instead of least-busy can easily lead to app server crashes
caused by heap memory exhaustion. Let's dig into some deta... (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)