OpenStack Rally 性能测试

作者:超级管理员 更新时间:2017-10-30 16:58:56 来源:未知 点击:15642
  注意点:在测试nova,在配置文件里面如果不指定网络id,那么默认是外网的网络(该网络是共享的),如果想要指定网络,那么该网络必须是共享的状态,否则将会报错:无法发现网络。如果测试多于50台的虚拟
   注意点:在测试nova,在配置文件里面如果不指定网络id,那么默认是外网的网络(该网络是共享的),如果想要指定网络,那么该网络必须是共享的状态,否则将会报错:无法发现网络。如果 测试多于50台的虚拟机需要修改默认值,因为默认值是有限制的可用如下命令查看:
  [root@rally nova]# nova absolute-limits   
  +-------------------------+---------+
  | Name                    | Value   |
  +-------------------------+---------+
  | maxServerMeta           | 128     |
  | maxPersonality          | 100     |
  | maxImageMeta            | 128     |
  | maxPersonalitySize      | 10240   |
  | maxTotalRAMSize         | 5120000 |
  | maxSecurityGroupRules   | 20      |
  | maxTotalKeypairs        | 100     |
  | totalRAMUsed            | 58960   |
  | maxSecurityGroups       | 10      |
  | totalFloatingIpSUSEd    | 0       |
  | totalInstancesUsed      | 24      |
  | totalSecurityGroupsUsed | 1       |
  | maxTotalFloatingIps     | 10      |
  | maxTotalInstances       | 200     |
  | totalCoresUsed          | 51      |
  | maxTotalCores           | 500     |
  +-------------------------+---------+
   
  修改默认值可以在界面,管理员->默认值,进行修改;其次可以在运行nova-api服务的节点上修改配置文件nova.conf
   安装rally:
  [root@rally nova]#git clone https://github.com/openstack/rally.git 
  [root@rally rally]# /usr/bin/easy_install pip (安装pip,有就不需要装了)
  [root@rally rally]# mkdir /root/.pip
  [root@rally rally]# vim /root/.pip/pip.conf  (设置pip源,加快安装速度)
  [global]
  index-url=http://pypi.douban.com/simple
  [root@rally nova]#pip install -U virtualenv 安装虚拟环境(可装可不装,一般为了系统的干净还是装个虚拟环境)
  [root@rally nova]#virtualenv .venv
  [root@rally nova]#. .venv/bin/activate
  [root@rally nova]#yum install gcc-c++      (安装编译工具)
  [root@rally nova]#cd rally
  [root@rally rally]#./install_rally.sh
  ....
  ======================================================================
  Information about your Rally installation:
  * Method: system
  * Database at: /var/lib/rally/database
  * Configuration file at: /etc/rally
  ======================================================================
  安装完成, 数据库的配置这里暂时没做。
   创建一个随便命名的.json格式文件:
  这是keystone版本为v2
  [root@rally rally]# cat existing.json
  {
  "type": "ExistingCloud",
  "auth_url": 'http://172.16.105.189:35357/v2.0/',
  "admin":{
      "username": admin,
      "password": admin,
      "tenant_name": admin
      }
  }
  keystone版本为v3时用以下模板参考https://github.com/openstack/rally/blob/master/samples/deployments/existing-keystone-v3.json
  [root@rally rally]# cat existing.json
  {
  "type": "ExistingCloud",
  "auth_url": 'http://ip:5000/v3/',
  "region_name": "RegionOne",
  "endpoint_type": "public",
  "admin":{
  "username": "admin",
  "password": "xxx",
  "project_name": "admin",
  "project_domain_name": "default",
  "user_domain_name": "default"
   }
  }
   
  [root@rally rally]# rally deployment create --file=existing.json --name=existing           
  +--------------------------------------+----------------------------+----------+------------------+--------+
  | uuid | created_at | name | status | active |
  +--------------------------------------+----------------------------+----------+------------------+--------+
  | 15ef811a-6460-407c-b391-c0f435f1ae54 | 2015-03-05 10:09:36.468176 | existing | deploy->finished | |
  +--------------------------------------+----------------------------+----------+------------------+--------+
  Using deployment: 15ef811a-6460-407c-b391-c0f435f1ae54
   
  [root@rally rally]# rally deployment check
  keystone endpoints are valid and following services are available:
  +------------+-----------+-----------+
  | services | type | status |
  +------------+-----------+-----------+
  | ceilometer | metering | Available |
  | cinder     | volume   | Available |
  | cinderv2   | volumev2 | Available |
  | glance     | image    | Available |
  | keystone   | identity | Available |
  | neutron    | network  | Available |
  | nova       | compute  | Available |
  | nova_ec2   | ec2      | Available |
  | novav3     | computev3 | Available |
  +------------+-----------+-----------+
  如此便可继续往下进行OpenStack基准测试了。
   
   举个测试启动虚拟机的例子:boot.json文件内容如下:
  doc/samples/tasks/scenarios/nova/boot.json
   
  [root@rally nova]# cat boot.json 
  {
      "NovaServers.boot_server": [
          {
              "args": {
                  "flavor": {
                      "name": "m1.large"
                  },
                  "image": {
                      "name": "Windows_Server_2008R2_SP1_Standard_64bit"
                  },
                  "nics":[{"net-id": "c7048568-c966-4d57-a927-90dd8830fb96"}],(默认是没有这行的)
              },
              "runner": {
                  "type": "constant",
                  "times": 100,                     (测试次数100)
                  "concurrency": 2                 (并发数)
              },
              "context": {
                  "users": {
                      "tenants": 3,                
                      "users_per_tenant": 2
                  }
              }
          }
      ]
  }
   
  [root@rally nova]# . /root/rally/.venv/bin/activate
  [root@rally nova]# rally -v task start boot.json(/root/rally/doc/samples/tasks/scenarios/nova这是当前的目录)
  以上的图是测试结果。
  当通过rally deployment check检查OpenStack的service状态时,出现__unknown__,这是由于keystone 的service catalog没有返回service name并且rally无法通过type识别service,但此时可以利用rally plugin show api_version,来指定相应的api版本,举个例子:
          # In this example we will launch NovaKeypair.create_and_list_keypairs
          # scenario on 2.2 api version.
          {
              "NovaKeypair.create_and_list_keypairs": [
                  {
                      "args": {
                          "key_type": "x509"
                      },
                      "runner": {
                          "type": "constant",
                          "times": 10,
                          "concurrency": 2
                      },
                      "context": {
                          "users": {
                              "tenants": 3,
                              "users_per_tenant": 2
                          },
                          "api_versions": {
                              "nova": {
                                  "version": 2.2
                              }
                          }
                      }
                  }
              ]
          }

【推荐】Appium直播课早鸟价限时优惠,APP自动化的首选利器>>

推荐阅读

热门内容

LoadRunner 中怎么对日期进行参

  【背景】  今天在51Testing...

OpenStack Rally 性能测试

  注意点:在测试nova,在配置文件里...

测试微服务之建立测试文化

  这是由来自AWS的工程师Nathan...

华为一员工因说真话连升两级!质量人,你怎

  话说,职场如战场,什么话该说,什么话...

Python爬虫实战:使用Seleniu

  前面我们接触到的,都是使用reque...

值得收藏!这是SQL数据库优化的六种方法

  SQL命令因为语法简单、操作高效受到...

你们这些戏精,终究还是被消费大数据揪出来

  当你为了联谊和相亲置办面膜和彩妆的时...

实用又强大,6 款 Python 时间&

  在使用Python的开发过程中,除了...

沟通为王:安全人员必备的软技能

  网络安全市场对技术性技能的需求凸显,...

英国认为朝鲜是“WannaCry”网络攻

  网易科技讯消息,据路透社报道,英国周...

最新内容

广告的唯一宗旨是卖货,卖货

  其实,名人说的确实都对,但他是站在自己产品或服务角度的对,而我们都拿来当普遍...

哪些常见的影响内容的设计问题需要规避

  1、不合理的排版  排版设计出问题,首当其冲的空间设计不合理。段间距和行间距...

如何编写文章获得更好的排名

  第一选择合适的关键词。利用百度指数或者谷歌的关键词指数工具,选择和文章内容有...

关于SEO如何定义关键词我的一点理解

从事搜刮引擎优化事变已经1年多了,在从前我也是只是做个网站,并未涉及到关于网站搜...

如何让客户信赖你的营销型网站

信赖是成交最重要的基础,只有客户觉得你企业可以信赖,那么成交不是一件难事,许多企...

如何让百度收录热门关键词

百度热门关键词能带来很大的流量,这是大家有目共睹的事情。看看百度指数,如“货架”...

安全性测试分享之SQL注入

  安全性测试是指机密的数据确保其机密性以及用户只能在其被授权的范围进行操作的这...

网站怎样更新文章有利于网站排名呢

网站怎样更新文章有利于网站排名呢网站每天更新多少文章有利于SEO?站长们都知道每...

利用SEO技术来做网站页面优化

网站页面优化可以说是SEO优化最基础的东西,因为一个网站的页面优化直接影响你网站...

LoadRunner 中怎么对日期进行参数化?

  【背景】  今天在51Testing论坛看到这样一个问题:根据一些查询条件,...

网站建设对网络营销推广起到推动作用

在网站推广建设中,一旦关键词选择过于宽泛、匹配模式不够精准,竞争对手恶意点击等等...

OpenStack Rally 性能测试

  注意点:在测试nova,在配置文件里面如果不指定网络id,那么默认是外网的网...

Python Nose框架编写测试用例方法

  1.关于Nose  nose项目是于2005年发布的,也就是py.test改...

如何有选择的对数组进行操作

#includeint a[3] = {1,2,3};int ...

测试微服务之建立测试文化

  这是由来自AWS的工程师NathanPeck发布的“测试微服务”系列文章的第...

影响软件测试人员才能提升的因素

  今天和一位同事谈起影响软件测试工程师获得提升以及获得高新的原因是什么、可能每...

我的疑问

工作有些年头了,但是感觉不出自己有多厉害,顶多也就是经验多了点,而在纯粹的技术领...

如何使用OnCtlColor消息函数对BUTTON设置不同的颜色

本帖最后由martin_tang于2015-10-1823:23:11编辑我的目...

Jmeter接口自动化测试方法简介

软件大小:613KB资源类型:不详授权方式:免费/开源资料   主要内容:   ...

华为一员工因说真话连升两级!质量人,你怎么看?

  话说,职场如战场,什么话该说,什么话不该说,什么场合说什么话......这是...