Category Archive: Java

Mar 17

Docker, Cgroups, Memory Constraints, and Java: A Cautionary Tale, or Here be Reapers (sometimes)

oomkiller

TL;DR: Java and cgroups/Docker memory constraints don’t always behave as you might expect. Always explicitly specify JVM heap sizes. Also be aware that kernel features may not be enabled. And Linux… lies. I’ve recently discovered an interesting “quirk” in potential interactions between Java, cgroups, Docker, and the kernel which can cause some surprising results. Unless …

Continue reading »

Mar 15

Zombie Apocalypse! Docker AUFS + Java + Low Memory …. Hadoop in a Box Cloudera Manager Cluster

TL;DR — When using AUFS in a memory constrained environment, Java can spawn (lots!) of Zombies. A workaround is to change the storage driver to the device mapper. In working on the Hadoop in a box CDH cluster with Cloudera Manager, I’ve discovered a few interesting things about AUFS. These experiences are with Ubuntu 14.04 …

Continue reading »

Nov 30

JVM Choice Matters (a lot!)

I’m one of the lucky folk who was able to obtain a Raspberry Pi Zero for $5. Originally this was going to be an article reviewing the Pi Zero to see how much of a difference the overclocking really makes. That and my impressions of the Zero will be in a later post. TL;DR: The …

Continue reading »

Oct 02

Looking Inside a JVM: -XX:+PrintFlagsFinal

Java’s twenty years old now — next year Duke can have Irish Coffee! Seriously, though, in that time there’s been a lot of changes to the Java Virtual Machine (JVM). What once was true may no longer be the case. In digging into an issue I discovered a nice feature of the JVM which enables …

Continue reading »