If your clock drift corresponds to the GC pause-the-world event for the sawtooth drop-offs, then the amount of garbage being cleaned up in each is too much for your CPUs to do quickly.
Please add GC logging to your ignition.conf
and post the results for a few sawtooth cycles. Something like this:
wrapper.java.additional.20=-Xloggc:logs/javagc-%WRAPPER_TIME_YYYYMMDDHHIISS%.log
wrapper.java.additional.21=-XX:+PrintGCDetails
Make sure the 20
and 21
are unique integers in the list of additional java arguments.