Solving GC pauses is a complex task. If you do not believe our words, check out the recent LinkedIn experience in garbage collection optimization. It is a complex and tedious task, so we are glad to report we have a whole lot simpler solution in mind
We have invested a lot into our continuous integration / delivery infrastructure. As of now we can say that the Jenkins-orchestrated gang consisting of Ansible, Vagrant, Gradle, LiveRebel and TestNG is something an engineer can call a nirvana.
Gathering data from within the JVM, such as the thread or GC behaviour can get you dangerously close to the Java Virtual Machine internals. In this post we share our experience about two tools integrated to the JVM: -javaagents and JVMTI hooks.
JVM has got several layers of safety nets built in. More often than not, those safety measures are there to help you. But as seen from this permgen leak debugging session, the friends can sometimes turn into a foe.
When founders all have background from software development, some weird things are bound to happen. Especially when those founders are creating performance optimization software to be used by operations.
I managed to bring down our continuous deployment processes. It took two weeks to trace down the cause and apply the patch. In the post I describe both the sequence of events leading to the problem and the conclusions drawn.