If you’ve done any serious development with server side Java, you become intimately familiar with the behavior of the JVM’s Garbage Collector. I’ve spent countless hours testing JVM configuration under load and it’s not fun. The biggest, most common problem is garbage collector pauses. Basically, for those of you that aren’t Java programmers, the Java Virtual Machine manages all of the memory being used by a Java program. When it tries to clean up objects your program isn’t using, it will stop your app from running while the collector does it’s thing. There are ways to limit it, and there are interesting solutions like Azul to reduce the pauses, but it’s a common problem.
I was floored when I read this, though:
We have several clients running 20 - 30 GB JVMs. Only consistent problem I hear is not stability but GC pauses of “minutes.”
I’ve typically run services will single-digit GB heaps and we’ve seen seconds (which we consider unacceptable). I don’t want to imagine our users’ reactions if we ever had pauses of minutes…





