After increasing read concurrency from 8 to 64, GC mark-and-sweep was suddenly able to reclaim much more memory than it previously did.
Previously, mark-and-sweep would run around 5.5GB, and would cut heap usage to 4GB. Now, it still runs at 5.5GB, but it shrinks all the way down to 2GB used. This behavior was consistent in every machine I increased read-concurrent on. Any thoughts on why this behavior changed? No other diagnostics appeared to correlate to the concurrency change, besides thread count.