What is the maximum of CPU power that an application can consume?
So, the first thing to understand is that the percentage here is both relative to each device and somewhat "made up". The evolution here started with single core machine where, in theory, it meant "the CPU is completely busy". When symmetric multi-core machine came along, the decision was made to treat each CPU as it's own percentage, so the max percentage of a (symmetric) 2 core machine was "200%".
Now, when you get to a asymmetric system... that math doesn't really work, a "100%" of an E core is lot less computational power than the same percentage of a P core. More to the point, all of these percentage are a bit of an invented abstraction as they don't actually correspond to any kind of absolute measure.
Are there any limits and
There's a limit in the sense that we decided what percentages we'd use on every machine we ship.
could they be modified?
I'm not sure what you mean here. They'll absolutely vary between machine models. That is:
-
Across core counts, the max percentage changes.
-
Across hardware generations CPU powere represented by "100%" changes WIDLY.
I am asking because if I add more instruments the real-time behaviour gets bad at 700 % of CPU power.
So, the other tricky thing here is that real world performance involves a lot more than just CPU power. It's possible you're specifically saturating the CPU at that point, but it's just a possible/likely that you're actually hitting some other limit at roughly the same point. For example, the random I/O performance and caching of SSDs is high enough that they sometime generate performance "cliffs"- everything works fine as long as the SSD can keep up but once you saturate the device, things immediately fall apart.
The thing that most concerns me here is this:
While idle approximately 100%.
High idle CPU performance is a big red flag. Your app "isn't doing anything" so where is all that CPU doing? Note that there are actually two issues here:
-
The basic issue is that the CPU you use for one thing can't be used for something else, so reducing your idle usage make more resources available for other work.
-
It's very likely that whatever your doing at idle will ALSO scale with "real" work. So, not only are you wasting the basic "100%", it's also likely that your wasting an additional 5/10/20% as your "real" work increases.
__
Kevin Elliott
DTS Engineer, CoreOS/Hardware