Jump to: navigation, search

Rally/HowTo

< Rally
Revision as of 22:12, 23 December 2013 by Boris-42 (talk | contribs) (Benchmarking)

Run It!

The easiest way to learn how Rally works is to use already existing OpenStack deployed by DevStack. So let assume that we have 2 VMs:

 Vm1 - 192.168.1.2 (with Rally)
 Vm2 - 192.168.1.3 (with OpenStack deployed by DevStack)

Preparing

1) Installing Rally on Vm1 To install Rally on Vm1 use this instruction

2) Installing OpenStack using DevStack on Vm2

 ssh root@192.168.1.3
 git clone https://github.com/openstack-dev/devstack.git
 cd devstack && ./stack.sh

Action!

Prepare your config file

Requires two configuration files to describe a deployment and a benchmarking task. That allows to register an installation and then perform tasks of benchmarking.

Deployment

In our case we already have got an installation of OpenStack. Follow to sample doc/samples/deployments/dummy.json and fill all appropriate parameters. The configuration file stored in a separate file dummy.json:

{
  "name": "DummyEngine",
  "cloud_config": {
    "identity": {
      "url": "http://192.168.1.3/",
      "uri": "http://192.168.1.3:5000/v2.0/",
      "admin_username": "admin",
      "admin_password": "admin",
      "admin_tenant_name": "admin"
    }
  }
}

DevStack deploys all OpenStack component on Vm2, actually in

  • "identity" section you should specify IP address of Server where Keystone is run
  • "compute" you should specify information about Server where works one of Nova Computes
Benchmarking

A sample of a task configuration also a good point to start. Take copy of doc/samples/tasks/boot-and-delete.json, specify a proper image_id and store to a separate file boot-and-delete.json:

{
  "NovaServers.boot_and_delete_server": [
    {"args": {"flavor_id": 1, "image_id": "0d7cfe07-f684-4afa-813d-ca2611373c59"},
     "config": {"times": 2, "active_users": 1}},
    {"args": {"flavor_id": 1, "image_id": "0d7cfe07-f684-4afa-813d-ca2611373c59"},
     "config": {"times": 4, "active_users": 2}}
  ]
}

Run Rally!

If you didn't create Rally DB you should run this command:

   $ openstack-rally-manage db recreate


First, the deployment should be added in Rally:

   $ openstack-rally deployment create --name=mydeploy --filename dummy.json

List all deployments to get its UUID:

   $ openstack-rally deployment list
   +--------------------------------------+----------------------------+----------+------------------+
   |                 uuid                 |         created_at         |   name   |      status      |
   +--------------------------------------+----------------------------+----------+------------------+
   | 7712c8de-1539-4f4e-8a77-0a54c64499e8 | 2013-11-25 14:58:20.310001 | mydeploy | deploy->finished |
   +--------------------------------------+----------------------------+----------+------------------+

Ok now we should run our rally with benchmark configuration:

   $ openstack-rally --verbose task start --deploy-id=7712c8de-1539-4f4e-8a77-0a54c64499e8 --task boot-and-delete.json

Now using another ssh connection to Rally VM. Run this command:

   $ openstack-rally task list 
   +--------------------------------------+----------------------------+-------------------------+--------+
   |                 uuid                 |         created_at         |          status         | failed |
   +--------------------------------------+----------------------------+-------------------------+--------+
   | 83d9e08c-4f2b-4c1d-9c83-f36bcc6b5a68 | 2013-09-16 05:28:57.241456 | test_tool->benchmarking | False  |
   +--------------------------------------+----------------------------+-------------------------+--------+

To get detailed results by task with uuid: 83d9e08c-4f2b-4c1d-9c83-f36bcc6b5a68 you should run:

   $ openstack-rally task detailed  8532319f-d093-47de-b9f3-2909c03c7e30
   ================================================================================
   Task 83d9e08c-4f2b-4c1d-9c83-f36bcc6b5a68 is finished.
   --------------------------------------------------------------------------------
   test scenario NovaServers.boot_and_delete_server
   args position 0
   args values:
  {u'args': {u'flavor_id': 2,
           u'image_id': u'0d7cfe07-f684-4afa-813d-ca2611373c59'},
   u'concurrent': 1,
   u'times': 2}
   +---------------+---------------+---------------+-------+
   |      max      |      avg      |      min      | ratio |
   +---------------+---------------+---------------+-------+
   | 13.4224121571 | 13.2850991488 | 13.1477861404 |  1.0  |
   +---------------+---------------+---------------+-------+
   --------------------------------------------------------------------------------
   test scenario NovaServers.boot_and_delete_server
   args position 1
   args values:
   {u'args': {u'flavor_id': 2,
            u'image_id': u'0d7cfe07-f684-4afa-813d-ca2611373c59'},
    u'concurrent': 2,
    u'times': 6}
   +--------------+---------------+---------------+-------+
   |     max      |      avg      |      min      | ratio |
   +--------------+---------------+---------------+-------+
   | 19.802423954 | 16.9980401595 | 16.3908159733 |  1.0  |
   +--------------+---------------+---------------+-------+

Available Rally facilities

List of available Deploy engines (including their description and usage examples): Deploy engines

List of available Server providers (including their description and usage examples): Server providers

List of available Benchmark scenarios (including their description and usage examples): Benchmark scenarios