Review the Number of events configured for monitoring.
The more resources that are polled at a set interval the more memory is needed which leads to CPU spikes on the java process.
Revise and modify the Poll interval of monitored resources.
[Resource] > Monitoring Plans > Schedule Plan > EDIT : Advanced Settings
For example: Polling intervals can tuned down from 5 to 15 minutes for resources that don't need high frequency polls
Revise and re-configure the retention period for graph cache depending on the Resource:
Resources > Options > Graph Cache Database Configuration > Graph Cache Database Configure
For example: The sample time period the graph cache uses can decreased from 15 to 8 days