While you await a reply from the ycrash folks, I'll offer some thoughts based on experience, not reviewing anything more than what you offered in your note.
I don't think fiddling with jvm knobs is the answer. Gc's are a reflection of heap being used. Usually it's a simple matter of picking the right heap size for your app--especially for a job, doing essentially "one thing".
Before considering RAISING the Heap, there's always the possibility that it's spending time doing Gc's simply because you made the Heap much higher than needed and the jvm lazily used it. So first, have you run it with far less heap and had oom heap errors?
Second, you haven't said how long this job runs, or what jvm version it is. Both can influence how to analyze things. (Sorry if those are indicated somewhere that I missed them. On a phone, once we're answering, we can't easily see the original note.
Third, if it does need more heap, it may run better with even just 1gb more (seriously), or it may need 5g more, or 10 or 20. No none can say, only testing will determine what the app needs.
Finally, another way to go about resolving things is to lower the Heap requirements of the app. That can be harder, of course. (For some, doubling the Heap and running it may work and be trivial. Others may not have that available memory. Or doubling may not be enough.)
In that case, you'd need to find out WHAT in the app is a) using so much heap, and b) holding on to it so that it can't be gc'ed. Again, that is harder and also needs to be assessed at points within the processing of the app, as things could change dramatically over time during processing.
Edit your Comment