OpenStack 性能测试工具Rally使用

OpenStack 性能测试工具Rally使用

Rally是OpenStack社区推出开源测试工具,可用于对OpenStack各个组件进行性能测试。
可以自动化并统一 多节点OpenStack部署,验证,测试和性能分析。它可用作OpenStack CI / CD系统的基本工具,可以不断提高其SLA,性能和稳定性。

对于不同的使用场景,Rally在测试中的流程也有所不同,主要支持以下三种场景:

1) 开发测试,可以评估处于开发阶段的OpenStack系统的性能,能够完成安装部署、仿真测试并输出测试结果等一系列动作;

2) 开发运维测试,可以基于现有的OpenStack云平台,对已经安装部署的云平台进行仿真测试并输出测试结果;

3) CI/CD场景测试,可以将Rally集成到CI/CD系统。
在这里插入图片描述

Rally安装及配置

有多种方式安装Rally组件,如下是官方推荐的3种方法,
1.自动化独立安装

这个是全自动化,省事省力,如下命令即可搞定,如果是缺少什么软件,会自动下载安装。

wget -q -O-https://raw.githubusercontent.com/openstack/rally/master/install_rally.sh |bash

curlhttps://raw.githubusercontent.com/openstack/rally/master/install_rally.sh |bash

安装完成后,执行以下命令构建rally数据库:
rally-manage db recreate
2. 和DevStack allinone一起安装

git clonehttps://git.openstack.org/openstack-dev/devstack

git clonehttps://github.com/openstack/rally

cd devstack

cp samples/local.conflocal.conf

编辑local.conf文件,在[[local|localrc]]段里面新增如下行:

enable_plugin rally https://github.com/openstack/rally master

之后执行:

./stack.sh

  1. 使用Docker方式安装

docker build -t myrally .

sudo mkdir/var/lib/rally_container

sudo chown 65500 /var/lib/rally_container

docker run -it -v/var/lib/rally_container:/home/rally rallyforge/rally

Rally安装完成后,默认的配置文件路径为 /etc/rally ,修改该路径下的 rally.conf 文件即可,一般修改项为API 接口的超时时间。为了记录一次API性能测试的详细性能耗时分布,需要在配置文件中开启osprofiler,在配置文件中的 [openstack] 配置组中配置 enable_profiler = True ,从而开启API接口的trace调用记录。
在完成Rally的配置调整后,需要初始化Rally的测试环境,即创建deployment与具体的OpenStack环境进行关联。 初始化deployment目前有两种方法,一种是通过环境变量,另一种是通过环境文件方式。在实践过程中,我们采用了环境变量的方式,即环境中的admin-openrc.sh文件,添加:

 export OSPROFILER_HMAC_KEY="charlie"

其中需要说明的一点是环境变量 OSPROFILER_HMAC_KEY ,是为使用osprofiler的功能而设置的,该变量的值需要与 Openstack各服务配置文件中的值相同。编辑好环境变量文件后,需要使环境变量生效:

 source admin-openrc.sh

环境变量生效后,就可以创建deployment了,创建命令如下所示:

 rally deployment create --fromenv --name=openstack

创建完成之后,检查环境是否可用,显示Available表明环境可用:

 rally deployment check

在这里插入图片描述

Tempest配置及测试

通过Rally进行Tempest测试,执行如下命令创建tempest实例,Rally会自动同步tempest代码至本地:

  rally verify create-verifier --type tempest --name mytest

执行如下命令,进行配置:

rally verify configure-verifier

执行rally verify start开始测试所有openstack 接口,可以通过指定–pattern参数,仅对部分服务接口进行测试例如,–pattern set=compute可选的set有full, smoke, compute, identity, image, network, object_storage, orchestration, volume, scenario,当然–pattern参数后面的值也可以是正则表达式,此时测试的接口为某一服务的部分接口,例如:–pattern tempest.api.compute.admin.test_flavors.FlavorsAdminTestJSON

rally verify start --pattern set=compute
rally verify start --pattern set=image
rally verify start --pattern set=identity
rally verify start --pattern set=network
rally verify start --pattern set=volume

测试完毕后即可查看测试结果:

rally verify report --uuid <id> --type html --to name.html

OpenStack服务配置

OSProfiler是一个Python库,基本所有的OpenStack服务都集成了该Python库用以实现对服务的性能分析和优化,每个服务使用该库在代码中需要的地方埋点,在系统的边界点设置一个起始点,在调用返回的地方设置一个结束点,中间的时间间隔即为子系统的性能耗时。OpenStack服务在开启OSProfiler后,会在每次REST API调用过程中生成一条trace记录,用来记录本次REST API调用全链路中,各子系统的性能耗时分布。
为了开启OpenStack各服务的OSProfiler功能,服务配置文件中需添加以下部分:
[profiler]

hmac_keys = swordfish,foxtrot,charlie

trace_sqlalchemy = True

trace_wsgi_transport = True

trace_message_store = True

trace_management_store = True

enabled = True

connection_string = redis://XXXX:XXXX #redis地址

最后一个配置项 connection_string 有多种配置选择,默认如果不配置的话,trace记录是发送到Ceilometer的, 如果测试的OpenStack环境没有部署Ceilometer,可以将数据发送到Redis,Elasticsearch,MongoDB,RMQ等,选择不同的backend,配置会随之发生改变。
开启OSProfiler后,我们可以记录一个REST API调用过程中,服务的HTTP调用耗时,RPC调用耗时,DB API调用耗时,所有服务客户端驱动的调用耗时(如novaclient,neutronclient等),SQL请求耗时等。

Rally性能测试

在测试的过程中,我们使用Rally来发送REST API请求,进行并发的压力测试,在压测的过程中开启了OSProfiler, 以便能够在压测过程中得到接口的性能耗时分布结果。
在测试开始之前,首先需要编写测试需要的yaml文件,这些yaml文件的样例可以在Rally的Git仓库中找到,路径是rally/samples/tasks/scenarios,可以参考这些样例完成yaml文件的编写。执行测试命令为:

rally task start <test path>

当压测结束后,使用以下命令导出测试报告:

rally task report <uuid> --out output.html

可以在测试结果报告的 Scenario Data 部分,找到trace ID,执行以下命令生成每次调用的性能耗时分布报告:

osprofiler trace show --html --out trace.html <trace-id>

参考资料:
http://niusmallnan.com/_build/html/_templates/openstack/osprofiler.html

https://docs.openstack.org/osprofiler/latest/#five-ways-to-add-a-new-trace-point

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
OpenStack是一种开源的云计算平台,旨在提供可扩展的云服务,如计算、存储和网络。它由一系列相互关联的项目组成,可以用于构建和管理私有云、公有云和混合云环境。 使用OpenStack可以带来许多好处。首先,它提供了灵活和可定制的云解决方案。用户可以根据自己的需求选择适合自己的组件和配置方式,以满足其特定的业务需求。其次,OpenStack具有高度可扩展性,可以根据需要添加或移除计算、存储和网络资源,实现弹性伸缩。这可以帮助用户更好地满足业务增长或变化的需求。此外,OpenStack的开放性和兼容性使其具备与其他云平台和工具进行集成的能力,从而使用户能够充分利用现有的资源和投资。 在使用OpenStack时,首先需要选择合适的版本和发行版。然后,需要根据实际情况进行规划和设计,包括确定所需的计算、存储和网络资源,以及构建和配置相应的组件和服务。部署和配置OpenStack可能需要一定的技术和专业知识,因此可以考虑寻求专业的技术支持或培训。一旦部署完成,用户就可以使用OpenStack的控制面板来管理和监控其云环境,包括创建和管理虚拟机实例、存储卷和网络资源。同时,OpenStack还提供了API和命令行工具,使得用户可以通过编程的方式进行自动化和集成。 综上所述,OpenStack是一个功能强大、灵活可定制的云计算平台,可以帮助用户构建和管理高效、可扩展的云环境。但是,使用OpenStack需要一定的技术和专业知识,因此在实施之前需要进行相关规划和准备工作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值