SPEC(Standard Performance Evaluation Corporation,标准性能评估组织)近期公布了新一批SPECCloud®IaaS2018测试成绩,浪潮云海OS创造新的高纪录,成为全球性能、扩展性等综合性技术水平高的云平台软件,为未来智算中心的建设提供全球领先水准的系统平台。
SPEC Cloud测试基准对现实好的模拟
SPEC Cloud®IaaS 2018Benchmark是SPEC开发的评估基于大数据场景下的云基准标准测试(SPECCloud IaaS2018是SPEC的第二个基准测试套件来衡量云计算的性能,以原始2016版本为基础,具有各种增强功能和新的主要指标),采用Yahoo的YCSB与HiBench的K-Means模拟实际的工作负载。主要测试的是IaaS云平台性能,选用两类重要的和具代表性的负载:云平台上运行IO密集型和计算密集型负载,通过加压测试数据面性能、可扩展性以及控制面性能来得到测试结果。
图1 SPEC Cloud®IaaS 2018测试逻辑架构
IO密集型负载测试:YCSB是Yahoo公司的一个用来对云服务进行基础测试的工具,SPECCloud®IaaS2018通过创建NoSQL(Cassandra)实例实现YCSB架构。其测试项包括吞吐量、插入响应时间、读取响应时间、平均应用实例(ApplicationInstance)配置时间。
计算密集型负载测试:K-Means算法是机器学习中常用的一种聚类算法。SPECCloud®IaaS 2018基准测试使用HiBenchK-Means实现计算密集型测试。其测试项包括完成时间、每个应用实例运行的Hadoop迭代计数、平均应用实例配置时间。
SPECCloud具体测什么
SPEC Cloud®IaaS2018具有完善技术测试框架,是云计算性能测试的基准,是企业级客户云产品选型的重要参考标准。测试框架主要指标包含如下4个方面:
1.复制的应用实例数:复制的应用实例数表示在测试结束时已完成至少一个有效应用的实例总数。总复制数是K-Means与YCSB的应用实例总和,但二者任何一项的有效应用实例不能超过总数的60%。
2.性能得分:性能得分是所有有效应用实例的得分总和,代表了所有应用在云环境的总体表现。它是SPECCloud®IaaS 2018规范的YCSB和K-Means性能得分的总和。
3.相对可扩展性:相对的伸缩度是当多个应用实例同时运行,云环境未引入其他负载时,每个应用实例能提供与baseline阶段的应用实例相同运行水平的百分比。相对可扩展性是IO密集型负载和计算密集型负载两种负载的相对可伸缩度的平均值,它以百分比表示,结果越高代表相对可扩展性越好。
4.平均实例的配置时间:平均实例的配置时间表示有效应用实例中,所有实例的平均配置时间。每个实例的配置时间都是从创建实例请求开始到cbtool驱动可以ssh到实例的时间间隔。
根据公布的测试结果,基于浪潮NF5280M5双路服务器基础计算平台,浪潮云海OS平均虚拟机部署时长仅为36秒,复制的应用实例数达到18个,性能得分达到20.1分,相对可扩展性达到85.5%,也就是说,平台可以随着业务负载的提高保持近线性的扩展性能,具备强大的弹性部署能力、极低的响应时间,充分保证业务连续性。
图2 浪潮云海OSSPEC Cloud®IaaS 2018测试结果
精细优化负载调度算法 提高大规模场景下虚拟机性能稳定性及资源利用率
测试环境采用1个控制节点、9个计算节点的部署架构,计算节点上通过虚拟机运行实例,并在其中2台虚拟机上分别运行Cbtool基准测试工具与Time-server服务(时间同步服务)。
图3 SPEC Cloud®IaaS 2018测试部署架构
浪潮工程师基于Ubuntu系统制作了Cbtool镜像、Time-server镜像、Hadoop镜像及Cassandra镜像,其中Hadoop镜像与Cassandra镜像安装了Cloud-init、相应的Hadoop/Cassandra应用,并针对应用报错对应用的配置文件及相关代码做了调整。另外,为了快速启动虚拟机修改grub为系统立即启动,并将Hadoop镜像与Cassandra镜像上传到浪潮云海OS环境。
在测试过程中,浪潮工程师分别通过限制每个计算节点运行的虚拟机数量、分组调度、IO密集型和计算密集型两种业务的亲和性策略等进行参数的调优,但效果都不明显。通过对实际的负载进行监控,浪潮工程师发现负载对CPU、内存及磁盘的调度不均衡,因此对调度算法进行了优化,调整了对于CPU、内存及磁盘的调度权重。通过算法优化,保证每个应用实例的正常运行前提下提高了整体的应用实例数,为大规模场景高密度虚拟机管理提供实践案例参考。
另外,通过对磁盘IO进行监控,浪潮工程师发现在负载的情况下,虚拟机的磁盘IO性能有所降低。根据多次定位分析,发现虚拟机后端与宿主机系统盘处于相同存储的情况下会导致IO性能降低,因此为了保证读写不受宿主机系统盘干扰,选择将虚拟机后端与宿主机系统盘分离部署。同时,为了保证应用在云环境的整体表现,浪潮工程师对虚拟机规格(CPU、内存、硬盘)进行多次调整,且关闭了KVM的内存共享,防止因抢占导致性能降低,关闭了CPU预留和CPU绑定,防止CPU不能被充分利用,最终实现负载的情况下虚拟机的CPU、内存、硬盘都能保持较高的利用率,提高了大规模场景下虚拟机性能稳定性和资源利用率。
图4某一节点内存共享关闭示例
为了降低平均实例的配置时间,浪潮工程师增大了nova并发任务个数上限,并实现了镜像缓存机制。其中,增大nova并发任务个数减少了虚拟机建的排队时间,镜像缓存解决了同一个镜像创建多台虚拟机的流程中频繁地下载、删除、再下载镜像导致耗时严重的问题,节约了镜像下载到本地所消耗的时间,从而有效提高了创建虚拟机的速度,满足客户快速、批量创建虚拟机需求。
图5增加nova-conductor的worker数,提高nova处理能力示例
图6镜像缓存配置示例
为了优化并发场景,浪潮工程师还优化了haproxy的线程数、连接池中保持打开状态的大SQL连接数、至大允许超出的连接数。
卓越线性扩展能力全面支持新型业务应用上云
SPEC在评估了线程计数和操作计数后,选择了40个线程计数和400万个操作计数作为SPECCloud®IaaS 2018Benchmark的基准。其目标是反映I/O性能的改进,并使YCSB工作负载AI运行周期时间与当前云中的K-Means工作负载保持平衡。
SPEC在扩展阶段,为每个应用实例生成数据,插入的总记录保持在1000000。默认记录长度为1KB,数据大小为1GB。复制的有效数据大小至少为3GB,跨越6个Cassandraseeds。
K-Means生成的数据集的大小约为415Mb,运行结束时数据的总大小约为900MB。使用Hadoop的三副本复制,磁盘上的大小约为2.8GB。使用中等大小的实例,K-Means完成时间和数据生成时间与每次运行的YCSB完成时间和数据生成时间大致相同。
测试结果显示,浪潮云海OS可以完成I/O、计算等各类负载的调度,并且性能增长还具有领先的线性扩展能力,完全可以满足用户从传统业务到新型大数据、人工智能等创新应用的上云需求。
浪潮云海OS在此次SPECCloud®IaaS2018测试全部四项关键指标中均获得优异成绩绝非偶然,是多年研发积累的体现:浪潮云海OS在全球第二大开源项目OpenStack中持续位居社区黄金会员,近几个版本的社区贡献排名稳定在全球前十,在新Ussuri版本社区贡献极高。2019年浪潮云海OS实现了基于OpenStackRocky版本的全球大规模单一集群实践,通过权威机构测试认证,被国际知名数据分析机构GlobalData评定为“VeryStrong(超强劲)”级别。以云海OS为代表的OpenStack作为上云优选已进入大规模落地实践期,助力用户数字转型、智能升级、融合创新基础设施。