在过去几年中,虽然Netflix一直不断提到他们使用了Mesos,但是也没有向社区分享Mesos环境的很多细节。这一点在周四的MesosCon中完全改变了,Netflix不仅演示了自制的Fenzo调度器,并开源了这项技术。
与其他调度器(如Marathon或Aurora)不同的是,Fenzo并不是一个Mesos框架。它其实是一个与Mesos框架(如Cassandra或Spark)通信的Java插件,负责将它们的需求告知Mesos主节点,并获得相应的运行结果。
Fenzo提供了一组有价值的能力,可以向尽可能少的节点上打包尽可能多的任务、并提供了二十个选项用以描述什么样的主机类型可以运行什么任务。运行在AWS上的Netflix也为Fenzo建立了自动扩展规则,一旦任意一个集群达到了可以容许的最小节点数,就会增加新的资源;反之亦然。
来自Netflix的Sharma Podila声称,通过实验发现,Fenzo可以带来在作业大小和运行时间上显著的性能改进。同时,他们也发现,相对于其他调度器,使用Fenzo调度数以千记的任务更快。
专注技术的对冲基金Two Sigma并不像其他大型的Mesos用户一样家喻户晓,但也是领先的一家。在MesosCon中,来自Two Sigma的Li Jin演示了Cook,这是一个定制的调度器,用以在公司的仿真集群中,最大化资源的公平分配。Jin说,在仿真中,任务的大小和持续时间变化很大,但是无论任务是大是小,它的traders都在等待仿真结果来做决定。
在高峰时间,需求量多达容量的5倍,因此调度任务时很难同时保证快速和公平。Jin认为,此时甚至如何定义“公平”都是困难的,因为先到先得(first-come, first-served)或完全基于quota的分配方法都会导致一些任务无法得到它们需要的资源。
Jin说,“我认为,公平性(fairness)并不是为了公平(fair),而是为了更好的用户体验”。理想的用户体验应当是,无论何时需要资源,他们都可以得到可用资源中公平的那一份。
Cook通过对提交的仿真任务不断地打分(assign value scores),然后再决定何时何地运行他们,从而最终解决了这些问题。如果发生了资源争夺,那么队列中的低分任务将被抢占,直到有资源时再继续运行。Jin承认,Cook不是一个完美的系统,但却是一个比其他替代者快得多的系统。