High throughput use cases will almost always generate garbage collection. Even clusters with access patterns that tend to be mostly read-serving can see heavy collection activity when their batch loaders run. For a cluster that backs something customer-facing, minimizing garbage collection pause times is imperative.
In the pre-G1GC days, stop-the-world garbage collections were a common pain point for many production clusters. Successfully tuning the CMS (and other collectors) takes a great deal of skill, time for testing, and knowledge of the JVM and its behaviors. The inherent efficiency tuning intrinsic to G1GC tends to simplify the process greatly, which is one of the reasons its use is recommended for ...