A blog for all of Performance Engineering Basics to advanced concepts of analysis, JVM monitoring, GC Tuning, Database Performance Tuning.
Feedback
Get link
Facebook
X
Pinterest
Email
Other Apps
Hey, Many thanks for dropping by to check out my blog and taking time to read through. If you have any questions / feedback, please drop an email to performance at jnantech dot com
JDK Nuances JDK upgrades is one of the most discussed topics as it is something that just cannot be changed without looking in to the code. This problem becomes more evident for large enterprise class applications. Despite the advances in JDK releases providing various optimizations / newer features, JDK8 we can still find JDK8 in being widely used. This can perhaps be related to the development effort needed to upgrade the underlying code. Even after taking the step of upgrading / recompiling the code on newer JDK’s like JDK11, there still come some issues which arise due to the enhancements and we will look at one such instance today in this brief blog post. To give a brief background this application is used for Indexing / Searching and uses Lucene to perform this task as I have described in the previous blog posts. But one change from the previous posts was that the JDK was upgrade to JDK11 from JDK8 after which this particular...
A curious case of continuous Full GC’s with G1GC Introduction Continuing on the previous articles where I had explained about tuning a JVM and the parameters involved, this article specifically deals with a curious case of the same JVM dumping out some unexpected messages in the logs during internal tests, the investigation and the final outcome. Readers are expected to browse through the previous articles to get a better context of what is being discussed here. The performance test environment consists of a replica of the entire setup in an exact similar architecture to what is deployed in production. The test engineers do extensive tests in different conditions to simulate production conditions and to understand the behavior of the application in various conditions. For first time readers let me (re)introduce the application under discussion - This particular application is responsible for Indexing and Search for the entire data that lives in ...
ActiveMQ Crash Introduction In this article let us look at an interesting case of ActiveMQ crashing and the symptoms it showed up and how it was resolved. ActiveMQ is a widely used message broker that talks via a wide range of sources. In the current context, its used for the purpose of sending email notifications where the test application places a message on the queue for it to be consumed by other interfacing applications for email notification delivery. The ActiveMQ runs in redundant mode with active standby. If a node goes down for any reason, the other node immediately picks up the processing and continues until it goes down. ActiveMQ is initiated using a wrapper which was designed off a community release version and not the regular commercial deployment version. The limitation of this would be explained later in the article. Problem It was observed that the ActiveMQ queue fills up due to pending messages (or) the mess...