kolla-ansible-----rally模块

摘要:
Rally简介Rally是OpenStack社区推出的一个开源测试工具,可用于测试OpenStack各种组件的性能。通过使用Rally组件,用户可以完成OpenStack云计算平台的安装和部署、功能验证、大规模负载测试和输出测试报告等一系列操作。拉力赛安装在icos环境中,直接安装在yml中的globals Enable拉力赛中。enable_ Rally:“是”然后安装并部署标签。如果性能测试设计主机关闭,建议将其安装在非测试节点的机器上。

Rally简介

Rally是OpenStack社区推出开源测试工具,可用于对OpenStack各个组件进行性能测试。

通过使用Rally组件,用户可完成OpenStack云计算平台的安装部署、功能验证、大规模负载测试(性能测试)、输出测试报告等一系列动作。

Rally安装

在icos环境中,直接在globals.yml中开启rally。

enable_rally: "yes"

然后tag安装部署即可。

如果是性能测试设计主机关闭等操作,建议rally安装在一台非测试节点的机器。

安装完优化一下参数,rally配置文件位置:/etc/rally/rally.conf

默认注释所有选项,测试中遇到如下问题:

  1. 获取实例状态超时
  2. 连接超时

做如下设置,避免超时影响测试结果,时间设置1800s:

[DEFAULT]
openstack_client_http_timeout = 1800.0
[benchmark]
cinder_volume_create_timeout = 1800.0
cinder_volume_delete_timeout = 1800.0
nova_server_boot_timeout = 1800.0
nova_server_boot_timeout = 1800.0

rally使用

创建Deployment

对于已经安装部署了OpenStack系统,有两种方式创建deployment

1) 使用环境变量创建

(rally)[root@node135 ~]# more openrc
export OS_TENANT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=xxxx
export OS_AUTH_URL=http://100.2.28.139:35357
#生效一下
source openrc
#创建
rally deployment create --fromenv --name=existing

kolla-ansible-----rally模块第1张

2) 使用json文件创建

rally deployment create--file=existing.json --name=existing

existing文件模板默认位置/rally-openstack/samples/deployments

existing.json文件内容如下:

 {

    "type":"ExistingCloud",
    "auth_url": "http://10.25.*.*:35357/v3",
    "region_name":"RegionOne",
    "endpoint_type":"public",
    "admin": {
        "username":"admin",
        "password": "****",
        "tenant_name": "admin"
    },
    "users": [
        {
            "username": "nsp_test_1",
            "password":"password",
            "tenant_name":"nsp_tenant_1"
        },
        {
            "username":"nsp_test_2",
            "password":"password2",
            "tenant_name":"nsp_tenant_2"
        }
    ]
}

 

查看所有的deployment列表

rally deployment list

kolla-ansible-----rally模块第2张

查看已经创建的deployment详情

rally deployment show existing

kolla-ansible-----rally模块第3张

检查deployment

rally deployment check

检查创建的deployment各项服务是否正常,以下是执行结果

kolla-ansible-----rally模块第4张

如果中途退出了环境,需要再次定义环境变量

rally deployment use existing

执行Task

Task是Rally执行的一个测试单元,执行Task时需要指定入口文件,可以是json文件或者yaml文件

如下是执行形式:

rally task start  /rally-openstack/samples/tasks/scenarios/nova/boot_ljy.yaml

常用的场景

默认场景模板位置 /rally-openstack/samples/tasks/scenarios

创建与删除虚拟机

boot-and-delete.yaml
{% set flavor_name = flavor_name or "m1.tiny" %}   #资源规格
---
  NovaServers.boot_and_delete_server:
    -
      args:
        flavor:
            name: "{{flavor_name}}"
        image:
            name: "TestVM"    #镜像名称
        force_delete: false
      runner:
        type: "constant"
        times: 10      #测试次数
        concurrency: 2  #并发数
      context:
        users:
          tenants: 3
          users_per_tenant: 2 
      sla:
        failure_rate:
          max: 0
    -
      args:
        flavor:
            name: "{{flavor_name}}"
        image:
            name: "TestVM"
        auto_assign_nic: true
      runner:
        type: "constant"
        times: 10
        concurrency: 2
      context:
        users:
          tenants: 3
          users_per_tenant: 2
        network:
          start_cidr: "192.168.190.0/24"
          networks_per_tenant: 2
      sla:
        failure_rate:
          max: 0
 

创建云盘

(rally)[root@control01 ljy]# more create-volume.yaml
---
  CinderVolumes.create_volume:
    -
      args:
        size: 1
      runner:
        type: "constant"
        times: 3
        concurrency: 2
      context:
        users:
          tenants: 2
          users_per_tenant: 2
      sla:
        failure_rate:
          max: 0
    -
      args:
        size:
          min: 1
          max: 5
      runner:
        type: "constant"
        times: 3
        concurrency: 2
      context:
        users:
          tenants: 2
          users_per_tenant: 2
      sla:
        failure_rate:
          max: 0

创建与删除网络

(rally)[root@control01 ljy]# more create-and-delete-networks.yaml
---
  NeutronNetworks.create_and_delete_networks:
    -
      args:
        network_create_args: {}
      runner:
        type: "constant"
        times: 10
        concurrency: 1
      context:
        users:
          tenants: 3
          users_per_tenant: 3
        quotas:
          neutron:
            network: -1
      sla:
        failure_rate:
          max: 0

查看Task

可使用rally tasklist,来列出已经执行的task

kolla-ansible-----rally模块第5张

生成Web测试报告

使用rally task report [task_id] --out=[outfile.html]可以生成web格式的测试报告

可能此时的html文件打开会有报错,原因是report.html文件中使用了一些css、js库,而这些库放在了google网站上,因此才会出现这么奇怪的现象。

需要将report.html里面如下四行中的libs网址:

  <link rel="stylesheet"href="https://cdnjs.cloudflare.com/ajax/libs/nvd3/1.1.15-beta/nv.d3.min.css">

  <script type="text/javascript"src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.3/angular.min.js"></script>

  <script type="text/javascript"src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.4.13/d3.min.js"></script>

  <script type="text/javascript"src="https://cdnjs.cloudflare.com/ajax/libs/nvd3/1.1.15-beta/nv.d3.min.js"></script>

替换为可以访问的bootcss静态库的libs网址,如下:

  <link rel="stylesheet"href="http://cdn.bootcss.com/nvd3/1.1.15-beta/nv.d3.css">

  <script type="text/javascript"src="http://cdn.bootcss.com/angular.js/1.3.3/angular.min.js"></script>

  <script type="text/javascript"src="http://cdn.bootcss.com/d3/3.4.13/d3.min.js"></script>

  <script type="text/javascript"src="http://cdn.bootcss.com/nvd3/1.1.15-beta/nv.d3.min.js"></script>

之后就可以打开了。或者直接将report.html模板文件的对应行修改掉,这样生成的报告web页面都会自动替换。

模板文件位置:/usr/lib/python2.7/site-packages/rally/ui/templates/task/report.html

上面的命令执行成功,可以看到生成的Html文件,在浏览器中可查看Html文件。展示效果如下:

kolla-ansible-----rally模块第6张

免责声明:文章转载自《kolla-ansible-----rally模块》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇爬虫神器——异步爬虫STL deque详解下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

linux的自启动服务脚本的(/etc/rc.d/init.d或者其链接/etc/init.d)

转载地址:http://www.cnblogs.com/diyunpeng/archive/2009/11/11/1600886.html Linux有自己一套完整的启动体系,抓住了linux启动的脉络,linux的启动过程将不再神秘。 本文中假设inittab中设置的init tree为: /etc/rc.d/rc0.d/etc/rc.d/rc1.d/e...

MongoDB 权限管理 用户名和密码的操作

在刚安装完毕的时候MongoDB都默认有一个admin数据库,而admin.system.users中将会保存比在其它数据库中设置的用户权限更大的用户信息。  当admin.system.users中一个用户都没有时,即使mongod启动时添加了--auth参数,如果没有在admin数据库中添加用户,此时不进行任何认证还是可以做任何操作,直到在admin....

js中英文网页切换

首先引入一下文件 绑定点击切换的节点 language.js的内容 $(function(){ // do something// var script=document.createElement("script");// script.type="text/javascript";// script.src="http://t.zoukankan....

npm script 自动打开浏览器 All In One

npm script 自动打开浏览器 All In One npm script 自动打开浏览器,bin open / node.js 兼容 mac/pc API It uses the command open on macOS, start on Windows and xdg-open on other platforms. source-code...

python测试开发django(33)--xadmin注册表信息

前言 xadmin后台如果要对表的内容增删改查,跟之前的admin.py文件里面写注册表信息一样,需在admin.py同一级目录新建一个adminx.py的文件。 然后在admin.py文件控制页面上需显示的内容。 models模块 models模块跟之前设计表是一样的,在models.py文件设计表的字段显示,以Studentts表为例。 # codin...

谈谈EF Core实现数据库迁移

        作为程序员,在日常开发中,记忆犹新的莫过于写代码,升级程序。升级程序包含两部分:一是,对服务程序更新;二是,对数据库结构更新。本篇博文主要介绍数据库结构更新,在对数据库升级时,不知道园友们是否有如下经历:         1)脚本文件中建表语句未作判断是否存在,而导致执行失败。         2)脚本文件中修改字段在建表语句之前,关联存储...