注意点:在测试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
}
}
}
}
]
}

相关链接:http://rally.readthedocs.org/en/latest/

https://rally.readthedocs.org/en/latest/tutorial/step_0_installation.html

https://rally.readthedocs.org/en/latest/tutorial/step_1_setting_up_env_and_running_benchmark_from_samples.html

OpenStack Rally 性能测试的更多相关文章

  1. OpenStack Rally 质量评估与自动化测试利器

    目录 文章目录 目录 问题描述 Rally 简介 应用场景 应用案例 Rally 安装 Rally 使用 Rally 架构 Rally Plugin 分析与实现 程序入口 执行 rally task ...

  2. Mirantis对OpenStack的性能测试:高并发创建75000台虚拟机

    硅谷创业公司Mirantis不久前进行了一项基准测试,测试在OpenStack Havana版本上创建75000台虚拟机的性能数据.就启动时间和成功率而言,当应用250个并发部署75000台虚拟机是最 ...

  3. Linux运维--实践-Rally

    1.rally简介 OpenStack Rally 是一个自动化测试工具,社区希望通过 Rally 来解答 "How does OpenStack work at scale?(如何规模化运 ...

  4. rally测试opentack------安装部署和简单实践

    1,下载 git clone git://git.openstack.org/openstack/rally 或者 git clone https://git.openstack.org/openst ...

  5. DevOps之平台架构

    唠叨话 关于德语噢屁事的知识点,仅提供精华汇总,具体知识点细节,参考教程网址,如需帮助,请留言. DevOps平台架构(Platform Architecture) <虚拟化平台(Platfor ...

  6. 理解 OpenStack + Ceph (8): 基本的 Ceph 性能测试工具和方法

    本系列文章会深入研究 Ceph 以及 Ceph 和 OpenStack 的集成: (1)安装和部署 (2)Ceph RBD 接口和工具 (3)Ceph 物理和逻辑结构 (4)Ceph 的基础数据结构 ...

  7. OpenStack Benchmark - Rally

    作为以基于OpenStack的云平台的基准测试工具 -- Rally, 其功能不仅是测试云的性能&&稳定性, 还可以安装OpenStack,以及以良好的表现形式(web 页面)展现测试 ...

  8. 全解┃OpenStack Newton发布,23家中国企业上榜(转载)

    (转载自Openstack中文社区) 陈, 翔 2016-10-8 | 暂无评论 美国奥斯汀时间10月6日(北京时间6日24点),OpenStack Newton版本正式发布,在可扩展性.可靠性和用户 ...

  9. 我的第二本译作《精通OpenStack》上架啦:书籍介绍和译者序

    1. 书籍简介 英文书名:Mastering OpenStack Second Edition 作者:[德] 奥马尔-海德希尔(Omar Khedher)[印] 坚登-杜塔-乔杜里(Chanda Du ...

随机推荐

  1. JVMGC+Spring Boot生产部署和调参优化

    一.微服务开发完成,IDEA进行maven clean和package 出现BUILD SUCCESS说明打包成功 二.要求微服务启动时,配置JVM GC调优参数 p.p1 { margin: 0; ...

  2. php添加excel更新数据表数据

    公司有个需求,是用excel更新数据的,把错误的行列放到一个数组返回出来,正常的数据则插入,且返回数量 1.先需要引入phpspreadsheet,这里使用composer 安装 composer r ...

  3. [Skill]从零掌握80%的业务查询SQL语句

    前言 本篇文章的主要目的是帮助初学者快速入门SQL查询,从而解决实际业务中80%的SQL查询问题. 本文主要框架如下: 上篇:介绍SQL的语法顺序和执行顺序 中篇:介绍条件子句.分组查询和排序的细节 ...

  4. Linux保护机制和绕过方式

    Linux保护机制和绕过方式 CANNARY(栈保护) ​ 栈溢出保护是一种缓冲区溢出攻击缓解手段,当函数存在缓冲区溢出攻击漏洞时,攻击者可以覆盖栈上的返回地址来让shellcode能够得到执行.用C ...

  5. Manjaro 安装教程

    1 概述 本文讲述了如何在单硬盘下对Manjaro进行安装. 2 写U盘 首先第一步是下载镜像,官网下载地址戳这里,如果下载速度慢可以选择国内镜像,比如戳这里. 笔者选择的是XFCE桌面: 下载好后将 ...

  6. js格式化时间(指定模板格式)

    1 /** 格式化时间 2 * @param {string} date 需要格式化的时间 3 * @param {string} fmt 想要格式化的格式 4 */ 5 function forma ...

  7. Insertion Sort and Merge Sort

    Insertion Sort(插入排序) 思路:for 循环遍历数组中的每一个数 用while将每次遍历到的数于左侧的数进行对比,将小的排到左边 void InsertionSort(int*A, i ...

  8. JMeter 结果处理常见问题

    1. 前言 2. 结果处理常见问题 1)在察看结果树中只看失败情况 2)如何把日志放入文件查看 3)cvs 文件中文读取乱码 4)失败请求数据的采集 5)结果树响应数据中文乱码解决办法 1. 前言 工 ...

  9. OOP-面向对象(二)

    面向对象三大特征: 封装 继承 多态 -封装:对类中成员属性和方法的保护,控制外界对内部成员的访问,修改,删除等操作 私有的: private 在本类内部可以访问,类的外部不可以访问.(python中 ...

  10. 记某次sql注入绕过ids

    昨天测试sql注入,发现个站,存在ids,一个单引号直接拦截,无论我怎么编码都不行,怕不是废了.. 灵机一动 基础探测 /*'*/ 报错 /*''*/ 返回正常 是字符串类型. 先本地测试 返回所有 ...