It doesn't sound to me as though it is reaching a limit. It is very common on Linux for CPU to jump around since there are potentially hundreds, probably thousands of services that might kick in at some point in time.
top or similar, check out the "load" which has 3 values. If they are all consistently less than 2-3 or at least rarely going over then you certainly don't have an overloaded device.
This is from my Pi2:
glances is a Python based monitor that gives a much clearer display. It actually uses quite a lot of resources itself it it is a good test. With it, I can see my CPU % jumping about from 2% to just over 20%.
The other thing to check is the utilisation of SWAP. Glances shows that my Pi2 has allocated 2.7% of my 1000MB swap space. But on the Pi3 it is around 73% of 100MB, a little over twice the Pi2 in absolute terms.
SWAP utilisation is particularly critical on the Pi's because you are using a REALLY slow filing system on the SD card. SWAP space is memory that has been temporarily written to disk so that something else can use it. It then has to be read back in. If the service being swapped is important - like Node-RED for example, then you will get periodic CPU spikes and slow performance.
You can use things like InfluxDB, Telegraf and Grafana to capture and report on utilisation over time.
Here are graphs of Load average and CPU % over time on my Pi3:
And here is memory and swap utilisation:
This gives a MUCH clearer picture of what is going on and it is easy to see that, while I have some swap utilisation for some reason, the overall load is very low. Load on my Pi2 actually isn't a lot higher on average but it tends to peak higher, even reaching 1 occasionally. CPU on the Pi2 regularly goes over 50%: