【发布时间】:2018-08-24 19:26:38
【问题描述】:
我目前正在扩展大型基础架构,其中涉及在计算场(机器数量有限的集群)上分发复杂的计算。当前系统基于面向服务的架构,集群中的每台机器上运行的服务数量有限。
这些服务发送的每个请求所使用的资源(CPU、内存)根据请求的内容而有很大差异,但可能是已知的(或至少可以预测) 提前。换句话说,对于给定的请求,有可能知道以下内容:
- 处理请求所需的时间。 (可以从毫秒到几分钟甚至几小时不等)
- 处理请求所需的最大内存。 (从几 MB 到几 GB)
- 处理请求所需的最大内核数。 (大部分是单线程的,但有时是多线程的)
我们当前的架构存在问题,因为我们的“调度程序”没有考虑任何这些参数。正因为如此,我们经常遇到一个特定服务器被非常昂贵/“不兼容”的请求占用的问题(在内存使用、使用的 CPU 内核等方面),因此处理每个请求变得非常低效,而其他服务器则被相对“便宜”的请求占用。
我们希望通过将我们当前的基础架构迁移到更现代的编排系统(例如 Kubernetes( 或其他))来优化此分配过程。我现在的问题是,考虑到这些要求(具有不同资源要求的请求的有效分配 - 在处理请求之前已知),当前可用的平台可能适合优化这种类型的工作流程?
谢谢, 乔恩
【问题讨论】:
标签: service kubernetes scheduling distributed-computing orchestration