根据需求自动调整资源池容量的算法

时间:2018-04-22 16:09:51

标签: algorithm pool

您是资源的制作者,需要一段时间才能创建(比如说几分钟就可以了)。您有消费者请求该资源的实例,并且请求模式最初未知(并且可能随时间而变化)。

使用资源池是一个显而易见的选择。但是,通过以下方式选择和发展池容量的简单方法是什么:

  • 减少等待时间:我们希望大多数消费者在没有等待的情况下完成他们的请求(假设有90%的时间)。
  • 最大限度地减少浪费:假设将这些资源保留在池中是昂贵的,因此我们不希望大量的资源长时间坐着。

我不是在寻找一些先进的AI学习解决方案,而是针对一个基于简单因素调整池大小的简单算法,例如

  • 目前留在池中的资源
  • 池中资源的年龄
  • 请求频率

显然,有多种方法可以做到这一点,最佳算法将取决于资源的价格,消费者等待的程度以及您获得的有机请求模式的类型(例如缓慢增加) up vs bursts)。但是我正在寻找一种能够在大多数情况下做得不错的解决方案,并且有一些常量可以根据现实世界的问题进行调整。

为了说明,我将给出一个相当天真的示例算法:

  • 从池大小为10开始
  • 如果池占总容量的20%(最初为2项),请将池大小增加一个。
  • 如果池中最旧的项目(即下一个要使用的项目)超过1小时,则将池大小减少1.

0 个答案:

没有答案