Troubleshooting the Performance of Vert.x Applications, Part III — Troubleshooting Event Loop Delays

This article was originally published on Ales Nosek – The Software Practitioner.

In the previous entry to this series, we reviewed several techniques that help you to prevent event loop delays. However, even the best programmer makes mistakes. What should you do when your Vert.x application doesn’t perform as expected? How to find out what part of your code is blocking the event loop threads? In the final part of the series, we are going to focus on troubleshooting event loop delays.

The event loop thread model is vastly different from the thread-per-request model employed by standard JEE or Spring frameworks. From my experience I can report that it takes developers some time to wrap their heads around it and that at the beginning they tend to make the mistake of introducing blocking calls into the event loop’s code path. In the following sections, we will discuss several techniques of how to troubleshoot such situations.

Continue reading “Troubleshooting the Performance of Vert.x Applications, Part III — Troubleshooting Event Loop Delays”

Troubleshooting the Performance of Vert.x Applications, Part I — The Event Loop Model

This article is the first in a series of three articles which share my experience with troubleshooting the performance of Vert.x applications. The first article, originally posted on Ales Nosek – The Software Practitioner, provides an overview of the Vert.x event loop model, the second article covers techniques to prevent delays on the event loop, and the third article focuses on troubleshooting of event loop delays.

Programming with Vert.x requires a good understanding of its event loop model. From what I saw in practice, delayed or blocked event loop threads are the number one contributor to performance problems with Vert.x applications. But don’t worry. In this article, we are going to review the event loop model.

Continue reading “Troubleshooting the Performance of Vert.x Applications, Part I — The Event Loop Model”

Remote Debugging of Java Applications on OpenShift

This post was originally published on Ales Nosek – The Software Practitioner.

In this article I am going to show you how to attach a debugger and a VisualVM profiler to the Java application running on OpenShift. The approach described here doesn’t make use of the Jolokia bridge. Instead, we are going to leverage the port-forwarding feature of OpenShift.

Continue reading “Remote Debugging of Java Applications on OpenShift”

Webinar: Migrate to a Scalable and Secure MBaaS Platform

The increasingly widespread adoption of mobile applications means enterprises are coming face-to-face with the pressure to provide flexible, secure and comprehensive platforms that inspire and enable users. Legacy systems that are difficult to access and integrate resulting in fragmented development efforts and a focus on short-term delivery over long-term success.

Continue reading “Webinar: Migrate to a Scalable and Secure MBaaS Platform”