As per Wily Introscope, It is : Invocations are requests handled by the application and its various parts; concurrent invocations are the requests being handled at a given time. A low Concurrent Invocations value is desirable.
Can someone please explain with an example for the use of this metric in performance testing? Why is low Concurrent Invocations value is desirable?
This is Concurrent Invocation
chart from Introscope.
What kind of issue does it indicate?
Devoid of more details, a general answer:
Concurrent Invocations of a method or thread likely refers to the number of invocations that are currently active. For any highly parallel system like a high use web page for instance, concurrent invocations are by design. However, if you have efficient methods, you expect them to exit quickly, so even if you see a high incoming rate of requests, there aren't that many invocations active at any given time. This is desirable because fewer active instances keep fewer resources locked up.
If you have long running methods, it goes without saying that you will have a much higher number of active concurrent invocations. As requests keep pouring in, this number keeps going up, and each instance locks up a little bit of resources - like CPU, memory or connections from a pool. Resources unfortunately tend to be finite. A high number of active invocations limits how many newer requests you're able to accept, as well as slows down everything that is currently active - a traffic jam of sorts.
Just by itself high invocations doesn't necessarily indicate a problem. If just by the nature of the problem you're tackling, certain method just takes a long time to complete, you have to accept the fact that your concurrent invocations will be high.