机器学习平台

资源优化方案和效果

2019-08-19  本文已影响0人  王勇1024

背景

之前机器学习平台可用机器数量为324台,其中CPU机器289台,GPU机器35台。但由于一台机器上只能部署一个训练实例,导致集群整体资源利用率很低,约为50%。且由于机器被划分成多个Mesos集群,导致管理和维护成本较高,资源不能实现灵活调度。

目标

提升资源利用率到80%以上。

方案

集群合并

合并前

合并前集群划分情况:

其中merge集群用于运行merge应用,test和cpu用于测试,由于merge和测试应用一般只是临时短期运行,这三个集群长期处于空闲状态。且由于wangjing、sandbox等集群长期处于满负荷状态,导致测试时经常无空闲机器可用。

每增加一个集群,维护成本至少增加一倍,给我们带来了很大的负担。

效果

资源分组

由于之前采用了物理隔离方式,机器被划分到7个集群,如果想要在各组直接调配资源,成本非常高。集群合并后,通过在应用层实现资源分组,实现了灵活的资源隔离和调配。

资源分组

效果

Merge调度

由于Merge采用各自启停管理的方式,经常出现资源死锁问题,导致问题频繁发生。如果将Merge的启停调度全部交由Alpha管理,可从根本上解决死锁问题,且保证full模型的正常有序生成。

由于Merge应用运行在独立的merge集群,merge集群包含24台机器。如果能保证正常调度,只需15台机器即可,且由于Merge是间歇性运行,空闲时间可以用于Alpha功能测试。

Merge调度

效果

单机多实验

之前每个训练实例都独占一台机器(机器配置:内存128G,磁盘500G,CPU 32~40core),而很多训练实际资源利用率不足40%(广告不足10%),如果能在一台机器上运行多个训练实例,将有效提升资源利用率。

单机多实验

效果

广告节省机器6台,benchmark节省机器5台,主流量节省机器10台,共计节省21台。

调整训练CPU配额

之前训练启动时配置所需CPU为30,modeldump所需CPU为2,而集群中很多机器CPU核心数为32,这就导致如果某台机器上启动了超过一个modeldump,这台机器就无法启动训练。如果将训练CPU调整为25,将大幅降低这种情况出现的概率,且并不会影响训练和modeldump的正常运行。

调整训练CPU配额

效果

优化Marathon调度算法

调研中。。。

上一篇 下一篇

猜你喜欢

热点阅读