8620-84511745

Blog Post

OpenStack性能测试工具Rally

(转发)2016-03-15 陈阔 UMCloud优铭云

Rally 是一个基准测试工具,可以帮助我们判断出openstack表现如何,特别是在有负载的场景中。你可以使用Rally的各种场景测试脚本来对你的opnestack环境进行性能测试,基准测试,功能验证。在这里,我们以rally做为dashboard平台,向您展示如何轻松的创建图形化的测试结果,包括饼图,性能图表,圆柱图表,以帮助用户能快速消化理解测试信息。

如果你不熟悉Rally,建议先了解一下Rally的知识背景,然后再学习一下Rally从单一测试到多并发测试中如何进行图形展示,而这些报告能让您很容易发现在负载下的各种问题。

不同于传统的报表,Rally dashboard在图1中展现了易于阅读的用户界面,图中有各种关键指标的快照,使您能迅速的做出明智的决定。

                              图1Rally测试结果和图形展示

正如你在图1中看到的:

“authenticate”在左上角的导航中列出了keystone的基准测试功能 在“authenticate”的左下方垂直导航中,列出了 “Ceilometer alarms”到”VmTasks”中所有的基准测试场景。 “Authenticate.valiate_cinder”的主界面中,上半部分标题为完整的基准方案测试名称。 在这个名称下面是这个基准测试的三个选项卡,分别是overview,details,input tasks

Rally的测试结果表明,你完全可以使用dashboard中的性能数据判断出OpenStack平台中的各种问题 。

Tempest是OpenStack的集成测试套件,提供一些普通的表格和信息,但是并没有提供html格式的报告。但是Rally可以使Tempest的数据有更好的可读性。正如你在图2中看到的。

                                图2 Tempest output

开始一个基准测试要启动一个基准测试,如图1中,通过动行命令“rally task start”,当它运行完成后再调用”rally task report”显示指定的任务。 rally task report --out report.html

Rally为所有的openstack的相关项目提供基准测试。而这正是”big tent”(大帐篷模式)所倡议的目标。事实上,Rally一直是Big tent重构的第一个采用者,打破了各种孵化,非孵化,综合项目之间的边界。例如,rally现在支持raqar,designate,以及stackforge的Mistral项目测试。 随着基准测试进行,让我们从头了解输出信息,采用keystone的认证做为一个例子,从图1所示的rally界面,我们点击“validate_cinder”下面的authenticate,会产生三个选项卡,如下: overview details input task

让我们看看这三个标签中的信息,从overview开始。overview选项卡,如图三所示,显示该测试场景的一般信息,包括: Total durations显示每个原子操作所花费的时间,例如:创建虚机或者创建磁盘卷 Charts for the Total durations显示场景中的每个迭代。饼图显示成功和失败的比例。直方图显示他们在各个时间段完成的情况。

                                 图3 overview场景

在上图中包括启动虚拟机,并在其上执行一组动作,最后删除它。百分之95是最后的时间点,在这之后,这个动作可能会失败。

在图表中的total durations中,你能看到总的空闲时间,如:

引导虚机的时间 空闲时间 删除虚机的时间

这些图表是有用的,以查明每个动作之间的相关性,通过饼图,我们期望的颜色为一种纯色,表示百分之百的成功。然后,成功的定义是可以配置的,你可能要写一个负面的测式,比如api限速的测试,在正常情况下,我们要做到api限速,它的高并发请求就必须失败,在这个情况下,将显示出不到100%的成功。

details选项卡显示测试场景中的原子行为分析,例如,图4中的方案“boot_and_bounce_server”包括原子动作“boot_server”和“bounce_server”的。详细信息选项卡显示图形的每个原子的作用下的报告,这些信息使得您非常容易的找到基准情景的瓶颈。

                                   图4 细节展示

details信息选项卡显示以下图表,如图 4 所示: "Charts for each Atomic Action"显示的行动分为迭代。饼图显示每个操作的时间。 直方图显示分布的条形图中的作用持续时间,与 X = 持续时间和 Y = 该持续时间迭代次数。 input task选项卡显示方案配置和它必须完成的原子操作。让我们看看来自 NovaServers.boot_and_bounce_server 的信息:

              图5: Input task 关于 NovaServers.boot_and_bounce_server 基准测试

所有的文件在场景配置中都有类似的结构。scenarioclass.scenario_method是基准场景的全名,而图5是“novaservers。boot_and_bounce_server”。它由以下组成:

一个”runner“指定负载的类型,例如,您可能要测试一个固定的负载,一个发生在特定频率下的负载,或使用其他模式的一个负载。 ”args“指定的基准情景参数如使用image和flavor。 “context”定义的基准环境,rally要创建的临时租户和用户自定义的配额,角色和安全组,以及其他方案的要求。

除了“overview”、“details”和“input task”,我们的开发人员已经创建了一个“failures”选项卡中的一个新的补丁集到rally,这会显示在基准测试过程中出现的故障。

如图6所示,故障将提供一个有关所有失败交互的表,包括订单号、异常类型和异常消息。当它成为可用,您还可以单击一行显示一个完整的跟踪。

                                         图6 失败信息图表

凭借其齐全的功能和图形报告,Rally可以帮助您轻松找出你需要修改以获得最佳性能的云部署。在测试云平台和已经运行的云平台,可以帮助你诊断出问题点,并能发现负载测试的一些问题。

作为一个社区项目,Rally的发展仍在继续。它提供了一个非常全面的OpenStack云平台性能测试框架。方便开发者优化代码,同时也给企业项目实施提供了帮助。UMCloud在项目实施过程中,坚持对所有云平台使用Rally来作为项目交付性能测试工具,提供全面的云平台性能数据报告给客户。

Posted in Openstack on Mar 16, 2016