背景:Rally是OpenStack基准测试的一款工具,集成了部署、API测试、压力测试功能,Rally测试OpenStack在并发下API的相应时间和请求成功率,从而测试出OpenStack规模和性能。

1.概览

1.1. 注册Rally部署

$ rally deployment create –fromenv –name=existing
$ rally deployment create –file=existing.json –name=existing
1.2 检查deployment环境
$ rally deployment check
1.3 rally任务模板
{
“args”: { },
“runner”: { },
“context”: { },
“sla”: { }
}
1.4 执行rally任务
$ rally task start rally-jobs/rally.yaml
1.5 生成测试报告
$ rally task report –out=report.html --open
1.6 其他命令
$ rally show images
$ rally show flavors
$ rally deployment list

  1. 安装部署
    1.1 从git库上下载源码
    $ git clone git://git.openstack.org/openstack/rally
    1.2 安装rally依赖包
    $ pip install –r requirements.txt
    1.3 安装rally
    $ ./install_rally.sh –target /home/rally
    1.4 rally配置和初始化数据库
    $ vim /etc/rally/rally.conf
    connection=sqlite:opt/rally/database/rally.sqlite
    1.5 创建rally数据库
    $ rally-manage db create
    $ rally-manage db recreate
  2. 环境配置
    1.1 公共环境变量
    rally的调用逻辑和OpenStack的组件很相似,都是通过调用keystone提供的endpoint去测试相应的API,来达到针对用户场景做压力测试。因此在测试之前需要配置一些公共的环境变量。在访问keystone认证的时候会用到,最终根据系统配置的变量会在~/.rally/目录下生成一个deployment环境文件,内容如下。
    export OS_AUTH_URL=‘https://identity.az1.dc1.domainname.com/identity/v2.0’
    export OS_USERNAME=‘cloud_admin’
    export OS_PASSWORD=‘FusionSphere123’
    export OS_TENANT_NAME=‘admin’
    export OS_REGION_NAME=‘az1.dc1’
    export OS_ENDPOINT_TYPE=‘adminURL’
    export OS_INTERFACE=‘admin’
    1.2 地址映射配置
    对于FSO版本的OpenStack,同时在/etc/hosts文件配置相应的ip地址映射关系(已验证采用ip地址直接访问失败)
    120.25.1.21 nova-novncproxy.az1.dc1.domainname.com
    120.25.1.21 metering.az1.dc1.domainname.com
    120.25.1.21 image.az1.dc1.domainname.com
    120.25.1.21 volume.az1.dc1.domainname.com
    120.25.1.21 orchestration.az1.dc1.domainname.com
    120.25.1.21 network.az1.dc1.domainname.com
    120.25.1.21 compute.az1.dc1.domainname.com
    120.25.1.21 identity.az1.dc1.domainname.com
    120.25.1.21 object-store.az1.dc1.domainname.com
    120.25.1.21 upgrade.az1.dc1.domainname.com
    120.25.1.21 info-collect.az1.dc1.domainname.com
    120.25.1.21 cps.az1.dc1.domainname.com
    120.25.1.21 backup.az1.dc1.domainname.com
    120.25.1.21 log.az1.dc1.domainname.com
    120.25.1.21 ntp.az1.dc1.domainname.com
  3. 操作使用
    1.1 初始化rally环境
    rally的用例是跑在deployment环境中的,可以通过fromenv或者filename获取创建环境的参数,每个deployment环境的配置根据实际情况设置,通常都不一样。可以通过list命令查看所有deployment初始化出来的环境,同时可以通过check来验证rally访问OpenStack的API是否可用。

从环境变量中初始化

$ rally deployment create –fromenv –name=existing

从json中初始化

$ rally deployment create –filename=existing.json –name=existing

查看rally环境

$ rally deployment list

验证rally创建的环境是否可用

$ rally deployment check
如果check成功,会返回keystone提供的service和status信息。如下所示:
[root@LIN-20161280922 .rally]# rally deployment check
keystone endpoints are valid and following services are available:

services type status
ceilometer metering Available
cinder volume Available
glance image Available
heat orchestration Available
keystone identity Available
neutron network Available
nova compute Available
swift object-store Available

1.2 测试案例
为了说明测试的整个过程,这里创建一个5个并发,100次请求的创建和删除用例场景,测试一下keystone压力。
首先创建任务的json文件create_delete.json如下:
{
“KeystoneBasic.create_delete_user”: [
{
“args”: {
“name_length”: 10
},
“runner”: {
“type”: “constant”,
“times”: 100,
“concurrency”: 5
}
}
]
}

使用rally进行测试:
$ rally task start create_delete.json

测试结果


Task b0657b73-e4f6-47ce-aedf-703d89c4a95c has 0 error(s)

±------------------------------------------------------------------------------------------------------------------------+
| Response Times (sec) |
±---------------------±----------±-------------±-------------±-------------±----------±----------±--------±------+
| Action | Min (sec) | Median (sec) | 90%ile (sec) | 95%ile (sec) | Max (sec) | Avg (sec) | Success | Count |
±---------------------±----------±-------------±-------------±-------------±----------±----------±--------±------+
| keystone.create_user | 0.357 | 0.691 | 4.187 | 21.285 | 36.024 | 3.033 | 100.0% | 100 |
| keystone.delete_user | 0.125 | 0.337 | 2.759 | 3.326 | 35.895 | 1.598 | 100.0% | 100 |
| total | 0.517 | 1.477 | 16.213 | 21.512 | 36.327 | 4.632 | 100.0% | 100 |
±---------------------±----------±-------------±-------------±-------------±----------±----------±--------±------+
查看任务详情,rally跑成功之后,会生成一个task的UUID,可以通过这个task查看任务的具体信息,主要分两部分,一部分是任务相关信息,另外则是任务的执行结果,如下:
[root@LIN-20161280922 xiaxb]# rally task detailed b0657b73-e4f6-47ce-aedf-703d89c4a95c


Task b0657b73-e4f6-47ce-aedf-703d89c4a95c: finished

test scenario KeystoneBasic.create_delete_user
args position 0
args values:
{
“runner”: {
“type”: “constant”,
“concurrency”: 5,
“times”: 100
},
“args”: {
“name_length”: 10
}
}


Task b0657b73-e4f6-47ce-aedf-703d89c4a95c has 0 error(s)

±------------------------------------------------------------------------------------------------------------------------+
| Response Times (sec) |
±---------------------±----------±-------------±-------------±-------------±----------±----------±--------±------+
| Action | Min (sec) | Median (sec) | 90%ile (sec) | 95%ile (sec) | Max (sec) | Avg (sec) | Success | Count |
±---------------------±----------±-------------±-------------±-------------±----------±----------±--------±------+
| keystone.create_user | 0.357 | 0.691 | 4.187 | 21.285 | 36.024 | 3.033 | 100.0% | 100 |
| keystone.delete_user | 0.125 | 0.337 | 2.759 | 3.326 | 35.895 | 1.598 | 100.0% | 100 |
| total | 0.517 | 1.477 | 16.213 | 21.512 | 36.327 | 4.632 | 100.0% | 100 |
±---------------------±----------±-------------±-------------±-------------±----------±----------±--------±------+

Load duration: 93.172319
Full duration: 183.385978

生成可视化的结果报告,当需要把执行结果可视化展示出来的时候,可以根据上一步生成的task的UUID号用task report命令生成可视化结果,调用命令后会在当前目录生成一个html的报告文件,用浏览器打开,就可以查看到测试结果。
[root@LIN-20161280922 xiaxb]# rally task report b0657b73-e4f6-47ce-aedf-703d89c4a95c --out create_delete.html

云框架研究:openstack基准测试框架rally相关推荐

  1. openstack基准测试项目Rally介绍

    本文介绍openstack的基准测试项目rally项目,项目是什么,用例.架构.能做什么.举例. Rally是什么 rally是openstack的基准测试工具集合,可以完成多节点openstack的 ...

  2. CVPR2020:点云分类的自动放大框架PointAugment

    CVPR2020:点云分类的自动放大框架PointAugment PointAugment: An Auto-Augmentation Framework for Point Cloud Classi ...

  3. 新一代深度学习框架研究

    点击上方蓝字关注我们 新一代深度学习框架研究 于璠 华为技术有限公司,广东 深圳 518000    摘要:从人工智能的历史出发,简述深度学习发展历程以及目前的挑战,通过介绍新一代深度学习框架的特点, ...

  4. Maplab:一个用于视觉惯性建图和定位研究的开源框架

    摘要 鲁棒且精确的视觉惯性估计是当今机器人领域的重要挑战.能够用先验地图(prior map)进行定位(localize)并获得准确且无漂移的姿态估计,可以推动该系统的适应性.然而,目前大多数可用的解 ...

  5. 开发指南专题二:JEECG微云快速开发平台JEECG框架初探

    开发指南专题二:JEECG微云快速开发平台JEECG框架初探 2.JEECG框架初探 2.1演示系统 打开浏览器输入JEECG演示环境地址:http://demo.jeecg.org:8090/可以看 ...

  6. 云谦:谈谈前端框架的趋势与实践

    云谦:谈谈前端框架的趋势与实践

  7. DeepMind用基于AI的元强化学习框架研究多巴胺在学习过程中的作用

    内容来源:ATYUN AI平台 最近,AI已经应用到一系列视频游戏中,如Atari经典的Breakout和Pong.尽管这样的表现令人印象深刻,但人工智能仍然依靠数千小时的游戏时间来达到并超越人类玩家 ...

  8. 云原生时代的流水线框架 Argo

    作者 | FogDong(才云) 来源 | K8sMeetup社区 头图 | 下载于视觉中国 流水线(Pipeline)是把一个重复的过程分解为若干个子过程,使每个子过程与其他子过程并行进行的技术.本 ...

  9. 基于GIS的省级高速公路路面管理系统框架研究

    基于GIS的省级高速公路路面管理系统框架研究 摘  要  基于GIS的省级高速公路路面管理系统是采用路面管理技术.交通地理信息系统技术和HDM-4模型建立的针对包括沥青路面和水泥混凝土路面在内的高速公 ...

最新文章

  1. VS2008 集成openCV过程
  2. 2021汽车产业数字化转型白皮书-腾讯研究院.pdf(附下载链接)
  3. 51nod-1548:欧姆诺姆和糖果
  4. php 改变地址栏,php如何修改url
  5. java 获取 jsp 内容_JAVA记录-JSP内容
  6. 国际标准行业分类(ISIC Rev 4.0)
  7. 全民农场服务器维护上不去,全民农场微信授权失败登录不上解决方法
  8. python 二项分布_如何理解python中的二项分布?
  9. 使用opencv识别同心圆
  10. 根据观测时间,经纬度,求太阳高度角
  11. ARM-LINUX-GCC交叉编译工具链必知必会
  12. 做电商,怎么降低快递运输成本?
  13. 20200322零基础入门数据挖掘 - 二手车交易价格预测笔记(2)
  14. 二次规划问题(qp)和序列二次规划问题(sqp)的简单理解
  15. 苹果x计算机怎么恢复,苹果手机怎样找回备忘录,电脑小白数据恢复全攻略
  16. c语言strrchr函数,strrchr_字符串 | Strings_C_参考手册_非常教程
  17. (全网最详细!)bzoj 2548 灭鼠行动 模拟 解题报告
  18. BIDS Helper (Free)微软BI开发辅助工具--非常棒
  19. Visual Studio 2017 卸载 以及 Visual Studio 2010 安装
  20. 第十二届闽台陈靖姑民俗文化旅游节在福州启动

热门文章

  1. Windows下jupyter notebook的安装和使用
  2. PuTTY基本使用,Linux基本命令
  3. 浅谈Java8之lambda表达式
  4. debconf-set-selections mysql_debconf 和 dpkg-preconfgure 的用法
  5. WIN10家庭版安装Hvper-V
  6. PyTorch:DistributedDataParallel(DDP)学习
  7. 7-298 sdut-C语言实验-众数7-299 sdut-C语言实验-求一个3*3矩阵对角线元素之和
  8. 【蓝桥杯集训100题】scratch绘制蜘蛛网 蓝桥杯scratch比赛专项预测编程题 模拟练习题第05题
  9. JS流程控制语句 反反复复(while循环) 和for循环有相同功能的还有while循环, while循环重复执行一段代码,直到某个条件不再满足。...
  10. Acpi 和 apm