It depends a lot on what is happening and if the system begins to decay gradually or if a discrete drop in performance occurs (for example, βhealthyβ β βdeadβ).
In the second case, there is no feedback to indicate whether you are approaching the border, so you first need to find a point that exceeds the threshold and jump between this and the largest value that does not exceed the threshold. You can simplify this with 2 (or more) separate servers. Center splitting is pretty much the fastest way, although if you have 10 servers, you can split it into 10 steps at each iteration.
If you get some feedback, then you are looking for a method that includes this. You may find that the Nelder-Mead algorithm is appropriate. This is fairly easy to implement, but you will most likely find implementations in any language of interest to you.
source share