OpenStack Rally 性能测试

发表于:2017-10-30 16:24

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:wtfbk    来源:51Testing软件测试网采编

  注意点:在测试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
                              }
                          }
                      }
                  }
              ]
          }
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号