我正在为Web服务器开发用户负载测试应用程序,我正在尝试实现一项功能,以自动增加服务器可以处理的最大“用户”数量。我希望产生测试用户,直到满足平均响应时间和/或http请求失败率的某个阈值,然后我想杀死/生成用户,直到找到刚好低于阈值的稳定状态。
基本上,我希望尽可能快地找到仍然满足要求的最大稳定并发用户数。
我当然可以为此自己找出一个算法,但我认为可能存在我可以使用的现有加速/减速算法。如果有人对此有所了解,我很乐意,如果你能指出我正确的方向!
谢谢!
答案 0 :(得分:1)
这很大程度上取决于发生了什么,以及系统是否开始逐渐衰减,或者性能是否有不连续的下降(例如“健康” - >“死”)。
在第二种情况下,没有反馈来指示您是否正在接近边界,因此您需要首先找到一个超过阈值的点,并在该值和不超过阈值的最大值之间跳转。阈。您可以使用2个(或更多)单独的服务器来简化此操作。在中间拆分几乎是最快的可行方式,但如果你有10台服务器,你可以在每次迭代时分成10个步骤。
如果您收到一些反馈,那么您正在寻找一种合并此方法的方法。您可能会发现Nelder-Mead algorithm是合适的。它实现起来相当容易,但您可能会发现任何感兴趣的语言实现。