Hello,
I have a problem with the load of my servers and the number of "check programs" of my monit configuration (5.12.1 v)
In the documentation, we can see:
Program checks are asynchronous. Meaning that Monit will not wait for the program to exit, but instead, Monit will start the program in the background and immediately continue checking the next service entry in monitrc.
My config file (example):
set daemon 120
check program 1 with path 1.sh
if status = 1 then alert
check program 2 with path 2.sh
if status = 1 then alert
......
check program 24 with path 24.sh
if status = 1 then alert
check program 25 with path 25.sh
if status = 1 then alert
Every program takes between 5 and 10 seconds.
The problem is that in less than 1 second I have the machine with all the programs in state of running .... but with a load average of 30.
Could it be possible to execute all these programs, but limit only 5/10 running at time?
I mean (I write an example with my config file and with 5 of limit).
Start : 1, 2, 3, 4, 5
Run : 1, 2, 3, 4, 5
End : 1 ---> start only the 6
Run : 2, 3, 4, 5, 6
End : 2 and 3 ---> start 7 and 8
...
Run : 21,22,23,24,25 (25 is the last one)
End : 21
Run : 22, 23, 24,25
End : 22, 23, 24
Run : 25
End : 25
Wait 120 seconds for the next iteration
It's possible? Or maybe we have a variable like asynchronousLimit?
Thanks
--
Ferran Mengibar Pastor
Delivery Service
Skype: dragglori