Read these threads.
When there are a large number of updates to the DB the meteor app falls back to polling. This is because oplog tailing is flooding the meteor app which in extreme cases can crash the app. To reduce the CPU spikes you can try to set METEOR_OPLOG_TOO_FAR_BEHIND to a much smaller value but apparently that does not always work.
The other option is to move any collections that requires a large number of batch updates into a separate DB instance, but if you do that you will lose the ability to run reactive queries.