注意点:在测试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. MySQL实战45讲,丁奇带你搞懂

    之前,你大概都是通过搜索别人的经验来解决问题.如果能够理解MySQL的工作原理,那么在遇到问题的时候,是不是就能更快地直戳问题的本质? 以实战中的常见问题为切入点,带你剖析现象背后的本质原因.为你串起 ...

  2. ubuntu16.04 安装opencv3.4.0

    参考 https://www.cnblogs.com/arkenstone/p/6490017.html https://blog.csdn.net/u013180339/article/detail ...

  3. resultMap结果集映射解决属性名和字段不一致问题

    解决属性名和字段名不一致的问题 1.出现的问题 数据库中的字段 ​ 新建一个项目,拷贝之前的,测试实体类与数据库字段不一致的情况 public class User { private int id; ...

  4. 2.EL表达式&JSTL标签库常用方法

    1.EL表达式 Expression Language表达式语言,主要是代替jsp页面中的表达式脚本在jsp页面中进行数据的输出. 格式为${表达式} EL表达式输出Bean的普通属性.数组属性.Li ...

  5. 软件篇-01-为Jetson TX2扫清科研的障碍

    建议用vryL,GUI界面,功能更全,支持订阅. https://github.com/ShieldQiQi/vryL​github.com 下面的内容不用看了,除非你更喜欢命令行界面.   To r ...

  6. 【JDK8】Java8 Stream流API常用操作

    Java版本现在已经发布到JDK13了,目前公司还是用的JDK8,还是有必要了解一些JDK8的新特性的,例如优雅判空的Optional类,操作集合的Stream流,函数式编程等等;这里就按操作例举一些 ...

  7. 【并发编程】线程池是否需要手动关闭吗?以Hutool中的线程池为例

    Hutool工具包中使用线程池的API是: ThreadUtil.execute() /** * 直接在公共线程池中执行线程 * * @param runnable 可运行对象 */ public s ...

  8. Dalvik模式下System.loadLibrary函数的执行流程分析

    本文博客地址:http://blog.csdn.net/qq1084283172/article/details/78212010 Android逆向分析的过程中免不了碰到Android so被加固的 ...

  9. 针对缓冲区保护技术(ASLR)的一次初探

    0x01 前言 ASLR 是一种针对缓冲区溢出的安全保护技术,通过对堆.栈.共享库映射等线性区布局的随机化,通过增加攻击者预测目的地址的难度,防止攻击者直接定位攻击代码位置,达到阻止溢出攻击的目的的一 ...

  10. Nmap 扫描器的使用技巧

    1.nmap语法 -A 全面扫描/综合扫描 例如:nmap -A 127.0.0.1 扫描指定段 例如:nmap 127.0.0.1-200&nmap 127.0.0.1/24 2.Nmap ...