从人肉算到实时算,阿里云超算上线集群报表功能

弹性高性能计算(E-HPC)基于阿里云基础设施,为用户提供公共云之上的HPC服务。传统超算往往是自建机房,一旦落成,集群的计算能力就是固定的,扩容会很麻烦。另一方面,集群的核时数会随着时间线性增长,即使节点空载,也会产生不菲的费用。相较于传统超算有限的“静态”资源,阿里云超算利用云的弹性可以做到计算资源的动态伸缩,根据事实的作业负载情况调整硬件计算资源,帮助用户优化资源成本。

集群管理员最为关心的应该是集群的计算资源,资源利用率和规模的背后是财务成本。对于客户的作业负载来说,利用率越高,财务成本越低。在客户上云的过程中,成本是一个极其重要的因素。因此客户需要清晰获得集群的使用情况,方便控制并调整优化各部分的成本预算。某客户给我们反馈,“现在报表都得人肉做,很麻烦。“ 因此,E-HPC的报表功能火速上线。

E-HPC报表

阿里云超算报表功能旨在帮助用户全面掌握集群的使用情况。例如节点数量折线图、用户或者队列使用的核时数、实例负载和作业的执行情况等信息。通过这些信息,客户可以掌握业务的高峰和低谷期、各用户或部门所用核时数并据此估算费用。此外,可以根据资源的使用情况动态调整各用户或部门的资源配比,压缩空闲资源量,降低生产成本。

集群使用情况

从人肉算到实时算,阿里云超算上线集群报表功能

图1: 报表功能总览

图1是E-HPC报表功能的总览图。上方的机器数量折线图可以清楚计算节点数量的变化趋势。如果用户开启自动伸缩服务,那么就可以清楚获取业务的峰值和波谷,帮助用户总结业务特征,为后续扩大业务打下坚实基础。这是因为自动伸缩是根据用户作业情况进行自动缩容扩容操作。

此外,左下方的图分别是从用户、队列、实例和实例规格维度统计作业所用核时数和作业的详细信息。这个数据可以帮助客户清楚掌握整个集群、部门或者用户的资源使用情况,并估算产生的大致费用。如上图用户使用量中,集群空闲率是54%,用户A是46%。那么集群管理员就可以考虑将部分节点划分给用户A,加大用户A的作业吞吐量。或者可以将部分节点释放掉,避免不必要的资源浪费。

手动进行资源编排来提升利用率是管理“静态”资源的有效方式,但是“动态”资源还有更有效的方式,就是E-HPC的自动伸缩。不同于手动调整资源,自动伸缩可以自行帮助用户进行计算节点的申请和释放。因此当集群中没有排队作业,但仍有空闲节点时,自动伸缩将会按照用户配置的规则来决定如何释放空闲节点,从而降低集群中节点的空置率。当集群中有等待计算资源的排队作业时,自动伸缩就可以动态的根据作业负载和用户配置的策略来扩容,快速处理作业。

优化自动伸缩配置

从人肉算到实时算,阿里云超算上线集群报表功能

图2: 实例使用量

从人肉算到实时算,阿里云超算上线集群报表功能

图3: 作业详情

图2的实例使用量是从节点维度呈现自动伸缩管理节点的使用情况。实例的生命周期是从实例创建成功开始,到实例被释放或者查询结束时间为止。如果用户开启自动伸缩,节点维度的报表就可以清楚呈现扩容实例的生命周期,用户可以据此来调整自己的配置,避免不必要的浪费。

例如,某客户在进行分子动力学计算过程中,发现实例的利用率基本维持在50%。通过借助报表功能,很快找到优化点。通过降低空闲节点的释放的查询次数,将机器的利用率从42%提升到49%。

上图是我们测试优化自动伸缩配置的实践。图2中compute049和050节点均是由自动伸缩创建的,可以看到这些节点的实际利用率约为50%。图3是实例compute05上运行的作业详细信息。两者比对我们发现:作业运行结束至该实例释放用时约7分钟。这段时间内实例没有任何负载,一直处于空闲状态,应该尽量缩短这部分时间。因此我们可以在自动伸缩的配置中减小释放实例的查询次数和每轮的空闲查询时间,缩短实例缩容统计时间,加速空闲实例的释放。

优化扩容速度

此外,我们通过报表功能发现,自动伸缩扩容出的节点需经过约7分钟才可以运行作业。这大大影响实例的利用率,对于30分钟左右的作业来说,这大概占去15%的利用率。因此我们上线支持客户使用自定义镜像来加速自动伸缩扩容,将7分钟压缩到1分半,大大提升实例的利用率。

总结

针对用户需要直观获取集群使用情况的需求,E-HPC报表提供多维度查询,帮助用户掌握集群的运行情况,更好地评估相关费用,优化资源调度,提升计算节点的利用率,降低生产成本。

未来,报表功能将加入内存使用、网络带宽等更多数据的统计,更加全面的掌握集群使用情况;支持运行中作业的实时查询,做到实时掌握集群的运行情况。通过配合E-HPC的自动伸缩等服务,为客户提供更好的云上服务!