云框架研究:openstack基准测试框架rally
背景: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 从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 - 环境配置
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 - 操作使用
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相关推荐
- openstack基准测试项目Rally介绍
本文介绍openstack的基准测试项目rally项目,项目是什么,用例.架构.能做什么.举例. Rally是什么 rally是openstack的基准测试工具集合,可以完成多节点openstack的 ...
- CVPR2020:点云分类的自动放大框架PointAugment
CVPR2020:点云分类的自动放大框架PointAugment PointAugment: An Auto-Augmentation Framework for Point Cloud Classi ...
- 新一代深度学习框架研究
点击上方蓝字关注我们 新一代深度学习框架研究 于璠 华为技术有限公司,广东 深圳 518000 摘要:从人工智能的历史出发,简述深度学习发展历程以及目前的挑战,通过介绍新一代深度学习框架的特点, ...
- Maplab:一个用于视觉惯性建图和定位研究的开源框架
摘要 鲁棒且精确的视觉惯性估计是当今机器人领域的重要挑战.能够用先验地图(prior map)进行定位(localize)并获得准确且无漂移的姿态估计,可以推动该系统的适应性.然而,目前大多数可用的解 ...
- 开发指南专题二:JEECG微云快速开发平台JEECG框架初探
开发指南专题二:JEECG微云快速开发平台JEECG框架初探 2.JEECG框架初探 2.1演示系统 打开浏览器输入JEECG演示环境地址:http://demo.jeecg.org:8090/可以看 ...
- 云谦:谈谈前端框架的趋势与实践
云谦:谈谈前端框架的趋势与实践
- DeepMind用基于AI的元强化学习框架研究多巴胺在学习过程中的作用
内容来源:ATYUN AI平台 最近,AI已经应用到一系列视频游戏中,如Atari经典的Breakout和Pong.尽管这样的表现令人印象深刻,但人工智能仍然依靠数千小时的游戏时间来达到并超越人类玩家 ...
- 云原生时代的流水线框架 Argo
作者 | FogDong(才云) 来源 | K8sMeetup社区 头图 | 下载于视觉中国 流水线(Pipeline)是把一个重复的过程分解为若干个子过程,使每个子过程与其他子过程并行进行的技术.本 ...
- 基于GIS的省级高速公路路面管理系统框架研究
基于GIS的省级高速公路路面管理系统框架研究 摘 要 基于GIS的省级高速公路路面管理系统是采用路面管理技术.交通地理信息系统技术和HDM-4模型建立的针对包括沥青路面和水泥混凝土路面在内的高速公 ...
最新文章
- VS2008 集成openCV过程
- 2021汽车产业数字化转型白皮书-腾讯研究院.pdf(附下载链接)
- 51nod-1548:欧姆诺姆和糖果
- php 改变地址栏,php如何修改url
- java 获取 jsp 内容_JAVA记录-JSP内容
- 国际标准行业分类(ISIC Rev 4.0)
- 全民农场服务器维护上不去,全民农场微信授权失败登录不上解决方法
- python 二项分布_如何理解python中的二项分布?
- 使用opencv识别同心圆
- 根据观测时间,经纬度,求太阳高度角
- ARM-LINUX-GCC交叉编译工具链必知必会
- 做电商,怎么降低快递运输成本?
- 20200322零基础入门数据挖掘 - 二手车交易价格预测笔记(2)
- 二次规划问题(qp)和序列二次规划问题(sqp)的简单理解
- 苹果x计算机怎么恢复,苹果手机怎样找回备忘录,电脑小白数据恢复全攻略
- c语言strrchr函数,strrchr_字符串 | Strings_C_参考手册_非常教程
- (全网最详细!)bzoj 2548 灭鼠行动 模拟 解题报告
- BIDS Helper (Free)微软BI开发辅助工具--非常棒
- Visual Studio 2017 卸载 以及 Visual Studio 2010 安装
- 第十二届闽台陈靖姑民俗文化旅游节在福州启动
热门文章
- Windows下jupyter notebook的安装和使用
- PuTTY基本使用,Linux基本命令
- 浅谈Java8之lambda表达式
- debconf-set-selections mysql_debconf 和 dpkg-preconfgure 的用法
- WIN10家庭版安装Hvper-V
- PyTorch:DistributedDataParallel(DDP)学习
- 7-298 sdut-C语言实验-众数7-299 sdut-C语言实验-求一个3*3矩阵对角线元素之和
- 【蓝桥杯集训100题】scratch绘制蜘蛛网 蓝桥杯scratch比赛专项预测编程题 模拟练习题第05题
- JS流程控制语句 反反复复(while循环) 和for循环有相同功能的还有while循环, while循环重复执行一段代码,直到某个条件不再满足。...
- Acpi 和 apm