We have a template with a low-level-discovery (40 item prototypes). All these item prototypes are active checks.
If the lld finds one objects there is no heavy load on the active checks process. If the lld finds more, for example about 30 objects, the load on the active checks process is very high.
There are 100 items configured as active to run each minute.
40 of these items need about 2 second to deliver results.
Let's say 20 of these 2 second items will run every minute. Then we have 20 2 second items plus 20 1 second items per minute.
The Zabbix Server will receive only 40 item values of 100 configured items. The other 60 will be delivered the next 90 seconds.
I have attached a picture of the graph for such items.
Here is my suggestion:
A new argument in the Zabbix Agent configuration file. For example "StartActiveAgents".
This specifies a number of forked processes that can perform active checks parallel.
Similar to "StartAgents" for passive checks.
This would be one so great new feature!