If you have many extensiones, the autoconfig scripts will take its share of cpu, also mysql will show some spikes. It is not directly tied to the fop2 process itself. You can monitor cpu usage with TOP and check who is taking the cpu time, is it fop2_server? is it mysql? is it asterisk?
My recommendations:
Use fop2 version 2.27, it is more cpu efficient managing lots of AMI events (but it consumes more ram)
Reduce the apply changes action in FreePBX. One common "mistake" I have seen is people doing multiple modifications/additions and applying changes after each one, when you can do all of the changes in one step and apply them just *once* when you finish. The apply changes in freepbx will regenerate your complete dialplan, it will create tons of files on disk, etc. It is demanding by itself (fop2 or not fop2).
Best regards,