From 6f1b2502d4d348799a5057cc1dd3ae65ef247ef1 Mon Sep 17 00:00:00 2001 From: ahothan Date: Sun, 3 Apr 2016 22:24:18 -0700 Subject: [PATCH] doc update with gallery Change-Id: I25e13c27fcd4d88f14c04190050c16d654ead6bc --- README.rst | 139 +------ doc/source/architecture.rst | 29 +- doc/source/cleanup.rst | 7 +- doc/source/gallery.rst | 71 ++++ doc/source/gallery/http.html | 230 +++++++++++ doc/source/gallery/storage.html | 450 +++++++++++++++++++++ doc/source/images/kb-http-thumbnail.png | Bin 0 -> 67573 bytes doc/source/images/kb-storage-thumbnail.png | Bin 0 -> 72438 bytes doc/source/index.rst | 1 + doc/source/installation.rst | 70 ++-- doc/source/readme.rst | 165 +++++++- doc/source/usage.rst | 80 ++-- kloudbuster/cfg.scale.yaml | 16 +- 13 files changed, 1055 insertions(+), 203 deletions(-) create mode 100644 doc/source/gallery.rst create mode 100644 doc/source/gallery/http.html create mode 100644 doc/source/gallery/storage.html create mode 100644 doc/source/images/kb-http-thumbnail.png create mode 100644 doc/source/images/kb-storage-thumbnail.png diff --git a/README.rst b/README.rst index fe24de9..f267ad6 100644 --- a/README.rst +++ b/README.rst @@ -1,126 +1,23 @@ -======== -Overview -======== +===================== +KloudBuster version 6 +===================== -How good is your OpenStack data plane or storage plane under real heavy load? +How good is your OpenStack *data plane* or *storage service* under real heavy load? -KloudBuster is a tool that can load the data or storage plane of any OpenStack -cloud at massive scale and can measure how well the cloud behaves under load. +KloudBuster is a tool that can load the data plane or storage infrastructure of any OpenStack +cloud at massive scale and measure how well the cloud behaves under load +where it matters: from the VMs standpoint, where cloud applications run. -Anybody with basic knowledge of OpenStack, data plane and storage -performance concepts can use the tool and get scale numbers for any OpenStack -cloud straight off the box with pre-defined default workloads. +Accessible to anybody with basic knowledge of OpenStack, installs in minutes and runs +off the box with sensible default workloads in a fully automated way. +CLI/REST or Web User Interface.. you pick what works best for you. -No need for complex installation as the KloudBuster installation takes care of -all the dependencies. +Read the full documentation with feature list, snapshots and diagrams, +scale test design, how-to and installation instructions: -Features --------- +`KloudBuster Documentation `_ -* Neutron configuration agnostic (any encapsulation, any overlay, any plugin) - -* OpenStack Storage backend agnostic - -* User can specify any number of tenants, routers, networks, VM instances (only - limited by cloud capacity) and KloudBuster will stage all these resources in a - way that makes sense for operational usage - -* Real VM-level performance and scale numbers (not bare metal) - -* Punishing scale (thousands of VMs and enough load to fill even the fastest NIC - cards or load any storage cluster with ease - if your cloud can even support - that much) - -* Data plane with HTTP traffic load: - - * Can load the data plane with one OpenStack cloud (single-cloud operations - for L3 East-West scale) or 2 OpenStack clouds (dual-cloud operations with - one cloud hosting the HTTP servers and the other loading HTTP traffic for - L3 North-South scale testing) - - * Real HTTP servers (Nginx) running in real Linux images (Ubuntu 14.04) - - * Can specify any number of HTTP servers per tenant (as many as your cloud - can handle) - - * High performance and highly scalable HTTP traffic generators to simulate - huge number of HTTP users and TCP connections (hundreds of thousands to - millions of concurrent and active connections) - - * Overall throughput aggegation and loss-less latency aggregation for every - single HTTP request (typically millions per run) using the open source - HdrHistogram library - - * Traffic shaping to specify on which links traffic should flow - - * Can support periodic reporting and aggregation of results - -* Storage load: - - * VM-level Cinder volume (block storage) or Ephemeral disk file I/O performance measurement - using FIO running inside VMs (not bare metal) - - * Supports random and sequential file access mode - - * Supports read, write and read/write mix - - * IOPs, bandwitdh and loss-less latency aggregation - - * User configurable storage workload profiles - -* Supports automated scale progressions (VM count series in any multiple - increment) to reduce dramatically scale testing time - -* Highly efficient and scalable metric aggregation - -* Automatic cleanup upon termination (can be disabled) - -* Manual cleanup script - -* KloudBuster Server to drive scale test: - - * from any browser (KloudBuster Web UI) - - * from any external programs (KloudBuster REST API) - -* Aggregated results provide an easy to understand way to assess the scale of - the cloud under test - -* KloudBuster VM image pre-built and available from the OpenStack Community App - Catalog (https://apps.openstack.org/) - - -Limitations and Non-Goals -------------------------- - -* Requires Neutron networking (does not support Nova networking) - -* Only supports HTTP and storage traffic in this version - -Unlike some other scaling test frameworks, KloudBuster does *not* attempt to: - -* provide a scale test framework that works across different cloud technologies - (OpenStack + AWS + Google Cloud + ...) - we are only focusing on OpenStack - -* provide a scale test framework that is flexible and programmable to do everything - - we just focus on opinionated and well targeted performance and scale areas - with sensible use cases and available in a fully integrated and easy to consume - packaged format - -* replace bare metal and domain specific native performance and scale frameworks - (line level traffic generators, ceph specific performance and scale tools...) - - -Contributions and Feedbacks ---------------------------- - -If you are interested in OpenStack Performance and Scale, contributions and -feedbacks are welcome! - -If you have any feedbacks or would like to make small or large contributions, -simply send an email to openstack-dev@lists.openstack.org with a '[kloudbuster]' -tag in the subject. Licensing @@ -150,13 +47,3 @@ the FIO binary copy was not modified and can be found directly at ``_ or can be obtained by email request to the maintainer of KloudBuster. - -Links ------ - -* Documentation: ``_ -* `KloudBuster REST API documentation Preview `_ -* Source: ``_ -* Supports/Bugs: ``_ -* Mailing List: kloudbuster-core@lists.launchpad.net - diff --git a/doc/source/architecture.rst b/doc/source/architecture.rst index b8d80a7..3f4afd7 100644 --- a/doc/source/architecture.rst +++ b/doc/source/architecture.rst @@ -1,4 +1,5 @@ -======================== +.. _arch: + KloudBuster Architecture ======================== @@ -20,7 +21,7 @@ that run inside the same cloud. Such traffic can involve: (that is the packets do not have to go through a router) - often called L2 East-West -- Packet routing if the 2 end points belong to differet Neutron networks +- Packet routing if the 2 end points belong to different Neutron networks (packets have to go through router) - often called L3 East-West The KloudBuster data plane scale test exercises L3 East-West traffic by running @@ -32,7 +33,7 @@ corresponding server router as illustrated in the following diagram: .. image:: images/kb-http-east-west.png The KloudBuster App typically runs outside the cloud under test on any server -that has a python interpreter (Macbook, Linux workstation...) with the +that has a python interpreter (MacBook, Linux workstation...) with the requirement to have access to the OpenStack API of the cloud under test. The KloudBuster app basically reads the requested scale config (which contains @@ -60,7 +61,7 @@ Rack to Rack Data Plane Scale ----------------------------- By default KloudBuster will rely on the Nova scheduler to place the various -cient and server VMs. As a result these VMs will be load balanced across all +client and server VMs. As a result these VMs will be load balanced across all servers and causing the data path of the HTTP traffic to be quite random. This can be good to measure the scale on a random traffic pattern but sometimes it is more interesting to shape the HTTP traffic can be shaped to follow certain @@ -83,12 +84,12 @@ North South Data Plane Scale Test --------------------------------- The North South traffic refers to traffic flowing between external sources and -VMs runnin in the cloud. Such traffic follows a very different path than +VMs running in the cloud. Such traffic follows a very different path than East-West traffic as it is generally always routed and requires the used of IP address translation (SNAT and DNAT). One exception to this is the use of a provider network which may avoid routing and NAT completely. -KloudBuster provides a option to test the North-South data plabe traffic by +KloudBuster provides a option to test the North-South data plane traffic by separating the client VMs and server VMs into 2 different OpenStack clouds. .. image:: images/kb-http-north-south.png @@ -101,12 +102,20 @@ Storage Scale Test ++++++++++++++++++ The storage scale test is a relatively simpler version of the data plane scale -test as it only involves 1 tenant 1 network and 1 router. Each test VM runs an -instance of the FIO test client (`FIO `_ is a -popular open source storage test client). +test as it only involves 1 tenant, 1 network and 1 router. Each test VM runs one +instance of the FIO test client (`FIO `_ which is a +widely adopted open source storage test client). .. image:: images/kb-storage.png +VM staging, storage plumbing (using Cinder or Nova for ephemeral disks) is done +by the KloudBuster app using OpenStack APIs. +Because the Cinder API abstracts the storage back-end, it is agnostic of +the technology used (Ceph, EMC...). +After the test, all resources (volumes, VMs, network, router) are cleaned up in +the proper order. + + Progression Runs ++++++++++++++++ @@ -118,7 +127,7 @@ Progression runs are a very convenient feature as it allows to produce result for series in a much shorter time by reusing the same set of staged VMs and iterating the scale test to produce measurements at different scale level. -For example, to get storage performace measurement for 100 to 1000 VMs in +For example, to get storage performance measurement for 100 to 1000 VMs in increments of 100, would require staging and unstaging 100+200+300+....+1,000 = 5,500 VM Instances without progression runs while it would only require staging 1,000 instances with VM reuse. diff --git a/doc/source/cleanup.rst b/doc/source/cleanup.rst index 0ea163f..80493c9 100644 --- a/doc/source/cleanup.rst +++ b/doc/source/cleanup.rst @@ -1,4 +1,5 @@ -=========================== +.. _cleanup: + OpenStack Resources Cleanup =========================== @@ -85,8 +86,8 @@ Example of cleanup log file:: If such file is provided to the cleanup script using the *--file* option, only the resources described in the file will be deleted. -Discoverty with Resource name filter (--filter ) -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Discovery with Resource name filter (--filter ) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ If no cleanup log file is provided, resources are discovered from OpenStack and selected using a regular expression on the resource name (--filter ). You diff --git a/doc/source/gallery.rst b/doc/source/gallery.rst new file mode 100644 index 0000000..f83eb52 --- /dev/null +++ b/doc/source/gallery.rst @@ -0,0 +1,71 @@ + +.. _gallery: + + +Gallery +======= + +This page has links to examples of scale test reports in HTML format generated by KloudBuster. +These reports were generated within minutes after starting the scale test from a +bare bone OpenStack cloud (not running anything). +Click on the thumbnail images to view the result HTML file in your browser (you will need +access to the Internet to view these files as they reference multiple Java script libraries in CDN). + +Sample HTTP Scale Report +------------------------ + +The following report shows an HTTP scale run with results for 1 to 20 HTTP servers +(running in as many server VMs) in increment of 5, where each HTTP server is receiving +HTTP requests from 1 HTTP traffic generator that runs in a separate VM and emulates 1,000 +users sending 1 request per second each (for a total of 1000 requests per second per HTTP server). +The topology used for the test is 1 tenant, 1 router, 4 networks and 5 HTTP servers per network. +Each iteration is programmed to run for 30 seconds. +This scale settings can be viewed in the Configuration tab. + +The table shows the results for each iteration step, with the requested and measured RPS +(HTTP requests per second) and the corresponding aggregated download throughput (the sum of all +downloads for all clients). + +The latency distribution is shows in the chart, where each line corresponds to one load level (or +iteration in the progression). Lines can be individually shown/hidden by clicking on the +corresponding legend item. + +For example, the largest scale involves 20,000 simultaneous users sending an aggregate of 18,621 +HTTP requests per second and the latency chart tells us that 99.9% of these 18,621 requests are +replied within 34ms, which is actually excellent. + +Note that this test is configured to reuse HTTP connections meaning that we do not have the +overhead of creating a new TCP connection for every HTTP request. This also means that this cloud +had 20,000 TCP active connections at all times during the scale test. + + + +.. image:: images/kb-http-thumbnail.png + :target: https://htmlpreview.github.io/?https://github.com/openstack/kloudbuster/blob/master/doc/source/gallery/http.html + + +Sample Storage Scale Report +--------------------------- + +This is a report for a storage scale test using the default workload suite with a progression run +from 1 VM to 20 VMs in increment of 5, and 30 second run per iteration. +This results in 6 tabs of results (1 per workload). The mixed read/write tabs further split in +2 sub tabs (1 for read and 1 for write results). + +The random read tab shows that each VM could achieve its requested 100 IOPs across the progression. +The lines represent the latency value at given percentile and can be individually shown/hidden by clicking +the corresponding legend item. +As an example, 20 VMs represents a combined 2,000 IOPs measured for a total of 60,000 random read operations. +The latency line tells us that 99.9% of these 60,000 read operations are completed within 1.576 msec. + + + +.. image:: images/kb-storage-thumbnail.png + :target: https://htmlpreview.github.io/?https://github.com/openstack/kloudbuster/blob/master/doc/source/gallery/storage.html + +The sequential write results are more challenging as they show that the VMs cannot achieve their requested +write bandwidth (60MB/s) and can only get 49MB/s each when there are 20 of such VMs. +The latency lines also reflect that stress by peaking at 500 ms for 99.99% of all write operations (although +latency is not nearly as critical for sequential access than for random access). + + diff --git a/doc/source/gallery/http.html b/doc/source/gallery/http.html new file mode 100644 index 0000000..240cacb --- /dev/null +++ b/doc/source/gallery/http.html @@ -0,0 +1,230 @@ + + + + + + + + + + + + + + + + + + + + KloudBuster Report + + + + + + + + + + + + + + + + +
+

KloudBuster HTTP Test Report

+
Latency(ms)
+
+ +
+ + + + + + + + + + + +
+ + {{row.connection}}{{row.server_vms}}{{row.requests}}{{row.sock_err}}{{row.rps}}{{row.rate_limit}}{{row.throughput}} Gbps
+
+ +
+

KloudBuster HTTP Test Configuration

+
+
+ +
+
+
+ + + + + + +
+
+
{{from_outside["time"]}} - KloudBuster {{from_outside["version"]}}
+
+ + + + diff --git a/doc/source/gallery/storage.html b/doc/source/gallery/storage.html new file mode 100644 index 0000000..5d393a7 --- /dev/null +++ b/doc/source/gallery/storage.html @@ -0,0 +1,450 @@ + + + + + + + + + + + + + + + + + + + + KloudBuster Report + + + + + + + + + + + + + + + + +
+

KloudBuster Storage Test Report

+ + + + +

{{current_mode_description}}

+
{{modes[current_mode_name]["title"]}} {{current_title}} ({{storage_target[from_outside.storage_target]}})
+ +
+
{{current_mode["y_axis"]}}Latency(ms)
+ +
+ + + + + + + + + + + + +
{{row.total_client_vms}}{{row.block_size}}b{{row.iodepth}} + {{row.rate_iops}} + + {{row.read_iops}} + + {{row.write_iops}} + + {{row.rate}} KB/s + + {{row.read_bw}} KB/s + + {{row.write_bw}} KB/s +
+
+ +
+

KloudBuster HTTP Test Configuration

+
+
+ +
+
+
+ + +
+
+
{{from_outside["time"]}} - KloudBuster {{from_outside["version"]}}
+
+ + + + diff --git a/doc/source/images/kb-http-thumbnail.png b/doc/source/images/kb-http-thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..73eecef139c46b1d4d5af8ebfee5b24801c8aeca GIT binary patch literal 67573 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 JPDHLkV1f)0wAugw literal 0 HcmV?d00001 diff --git a/doc/source/images/kb-storage-thumbnail.png b/doc/source/images/kb-storage-thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..8a7ae1e7a9469aa16b4548b3dcbb47d1a472e389 GIT binary patch literal 72438 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 qmF`8@*$Cc{z=i}iB(Rot&i!{hBrf-Et8J`_ +available from the `OpenStack Community App Catalog `_. +So if you just need to use the KloudBuster Web user interface you can instantiate +that VM image and point your browser to its public address as described in :ref:`run_server`. There are two alternative ways to install and run KloudBuster tool. -Users of KloudBuster who prefers to use the CLI should use regular PyPI based installation. -Developers of KloudBuster should use the GitHub/OpenStack Repository based installation. + +Users of KloudBuster who prefers to use the CLI or who prefer to run KloudBuster +locally on their workstation or laptop should use the PyPI based installation +(pip install). + +Developers of KloudBuster should use the GitHub/OpenStack Repository based installation +(git clone). Web Service and PyPI based installation will satisfy most use cases -and are the 2 recommended ways for running KloudBuster under production environments, or through an -automated or scheduled job. -The git repository based installation is targeted at developers of KloudBuster. +and are the 2 recommended ways for running KloudBuster under production environments, +or through an automated or scheduled job. .. note:: Installation from PyPI will only have the latest stable version. PyPI based Installation ----------------------- -This is the recommended way to install KloudBuster for non-development use if CLI is required. -KloudBuster is available in the Python Package Index (PyPI): -`KloudBuster PyPI `_ +This is the recommended way to install KloudBuster for non-development use if CLI is preferred +or if you prefer to run KloudBuster locally. -Step 1 -^^^^^^ +KloudBuster is available in the Python Package Index (PyPI) +`KloudBuster PyPI `_ +and can be installed on any system that has python 2.7. + +Step 1: Install pip and the python virtualenv (if not installed already) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ You will need to have python 2.7, pip, and some dependencies installed -before installing KloudBuster, run the command based on your distro. +before installing KloudBuster depending on the operating system at the installation site. +These pre-requisites can be skipped if the corresponding dependencies are already installed. Ubuntu/Debian based: @@ -50,8 +60,8 @@ MacOSX: $ sudo easy_install pip $ sudo pip install virtualenv -Step 2 -^^^^^^ +Step 2: Install KloudBuster in a virtual environment +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Create a virtual environment for Python, and install KloudBuster: @@ -92,8 +102,8 @@ It is recommended to run KloudBuster inside a virtual environment. However, it can be skipped if installed in a dedicated VM. -Super quick installation on Ubuntu/Debian -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Quick installation on Ubuntu/Debian +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. code-block:: bash @@ -105,8 +115,8 @@ Super quick installation on Ubuntu/Debian $ cd kloudbuster $ pip install -r requirements-dev.txt -Super quick installation on RHEL/Fedora/CentOS -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Quick installation on RHEL/Fedora/CentOS +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. code-block:: bash @@ -118,11 +128,10 @@ Super quick installation on RHEL/Fedora/CentOS $ cd kloudbuster $ pip install -r requirements-dev.txt -Super quick installation on MacOSX -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Quick installation on MacOSX +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -KloudBuster can run natively on MacOSX. These instructions have been verified -to work on MacOSX 10.10 (Yosemite). +KloudBuster can run natively on MacOSX. First, download XCode from App Store, then execute below commands: @@ -157,9 +166,10 @@ Upload KloudBuster Image .. note:: - If your OpenStack Glance is able to access the Internet, and you don't - need to access the KloudBuster Web UI from the pre-built image, you can skip - this section and you are done with the installation. + If your OpenStack Glance is able to access the Internet and you only use + the CLI to launch KloudBuster, you can skip this section (KloudBuster CLI + will request Glance to download the image from the OpenStack App Catalog when + it is not present in Glance). In the cloud under test, KloudBuster needs one "universal" test VM image (referred to as "KloudBuster image") that contains the necessary test software. @@ -169,10 +179,7 @@ application using the appropriate role (HTTP server, HTTP traffic generator, etc.). Pre-built images are available for download from the -`OpenStack App Catalog `_ (preferred method). For -whatever reason the pre-built version doesn't work for you, the image can be -re-built from MacOSX using Vagrant or from any Linux server. See -:ref:`here ` for more details. +`OpenStack App Catalog `_ (preferred method). .. note:: @@ -186,7 +193,8 @@ Manual upload of the KloudBuster VM image In order to upload the KloudBuster Image to the cloud under test, the image must be downloaded from the OpenStack App Catalog either directly from the OpenStack App Catalog (if you have direct access to the Internet) -or through an intermediate location such as a jump host (a jump host has access +or through an intermediate location such as a laptop that has Internet access +or a jump host (a jump host has access to both Internet and the cloud under test and can be used to download the image from the App Catalog and upload to Glance using either a Glance CLI command or via Horizon @@ -199,7 +207,7 @@ with the "kloudbuster_v" prefix and download the latest version from the list. The name of the image in Glance must match exactly the image name in the App Catalog (without the .qcow2 extension), for example to upload the image from -a local copy of that image: +a local copy of that image using the Glance CLI: .. code-block:: bash diff --git a/doc/source/readme.rst b/doc/source/readme.rst index a6210d3..4bb30e5 100644 --- a/doc/source/readme.rst +++ b/doc/source/readme.rst @@ -1 +1,164 @@ -.. include:: ../../README.rst +===================== +KloudBuster version 6 +===================== + +How good is your OpenStack *data plane* or *storage service* under real heavy load? + +KloudBuster is a tool that can load the data plane or storage infrastructure of any OpenStack +cloud at massive scale and measure how well the cloud behaves under load +where it matters: from the VMs standpoint, where cloud applications run. + +Accessible to anybody with basic knowledge of OpenStack, installs in minutes and runs +off the box with sensible default workloads in a fully automated way. +CLI/REST or Web User Interface.. you pick what works best for you. + + +Feature List +------------ + +* Neutron configuration agnostic (any encapsulation, any overlay, any plugin) + +* OpenStack Storage backend agnostic + +* Real VM-level performance and scale numbers (not bare metal) + +* Punishing scale (thousands of VMs and enough load to fill even the fastest NIC + cards or load any storage cluster with ease) + +* Data plane with HTTP traffic load: + + * Can load the data plane with one OpenStack cloud (single-cloud operations + for L3 East-West scale) or 2 OpenStack clouds (dual-cloud operations with + one cloud hosting the HTTP servers and the other loading HTTP traffic for + L3 North-South scale testing) + + * Real HTTP servers (Nginx) running in real Linux images (Ubuntu 14.04) + + * Can specify any number of tenants, routers and networks + + * Can specify any number of HTTP servers per tenant (as many as your cloud + can handle) + + * High performance and highly scalable HTTP traffic generators to simulate + huge number of HTTP users and TCP connections (hundreds of thousands to + millions of concurrent and active connections) + + * Overall throughput aggegation and loss-less millisecond-precision latency + aggregation for every single HTTP request (typically millions per run) + + * Traffic shaping to specify on which links traffic should flow + + * Can support periodic reporting and aggregation of results + +* Storage load: + + * VM-level Cinder volume (block storage) or Ephemeral disk file I/O performance measurement + using FIO running inside VMs (not bare metal) + + * Supports random and sequential file access mode + + * Supports any mix of read/write + + * IOPs, bandwitdh and loss-less millisecond-precision latency aggregation for every + IO operation (typically millions per run) + + * User configurable workload sequence + +* Supports automated scale progressions (VM count series in any multiple + increment) to reduce dramatically scale testing time + +* Highly efficient and scalable metric aggregation + +* Automatic cleanup upon termination + +* Regular expression based cleanup script (`cleanup`_) + +* KloudBuster server mode to drive scale test: + + * from any browser (KloudBuster Web UI) + + * or from any external programs (KloudBuster REST API) + +* Aggregated results provide an easy to understand way to assess the scale of + the cloud under test + +* KloudBuster VM image pre-built and available from the OpenStack Community App + Catalog (https://apps.openstack.org/) + +*Diagrams* describing how the scale test resources are staged and how the traffic flows are available +in :ref:`arch`. + +Scale results are available in json form or in html form with javascript graphical charts generated straight off the tool. + +*Examples of results* are available in :ref:`gallery`. + + +Limitations and Non-Goals +------------------------- + +* Requires Neutron networking (does not support Nova networking) + +* Only supports HTTP and storage traffic in this version + +Unlike some other scaling test frameworks, KloudBuster does *not* attempt to: + +* provide a scale test framework that works across different cloud technologies + (OpenStack + AWS + Google Cloud + ...) - we are only focusing on OpenStack + +* provide a scale test framework that is flexible and programmable to do everything - + we just focus on opinionated and well targeted performance and scale areas + with sensible use cases and available in a fully integrated and easy to consume + packaged format + +* replace bare metal and domain specific native performance and scale frameworks + (line level traffic generators, ceph specific performance and scale tools...) + + +Contributions and Feedbacks +--------------------------- + +If you are interested in OpenStack Performance and Scale, contributions and +feedbacks are welcome! + +If you have any feedbacks or would like to make small or large contributions, +simply send an email to openstack-dev@lists.openstack.org with a '[kloudbuster]' +tag in the subject. + + +Licensing +--------- + +KloudBuster is licensed under the Apache License, Version 2.0 (the "License"). +You may not use this tool except in compliance with the License. You may obtain +a copy of the License at ``_ + +Unless required by applicable law or agreed to in writing, software distributed +under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR +CONDITIONS OF ANY KIND, either express or implied. See the License for the +specific language governing permissions and limitations under the License. + +KloudBuster VM images contain multiple open source license components: + +* nginx: BSD License (http://nginx.org/LICENSE) +* wrk2: Apache License 2.0 + (https://raw.githubusercontent.com/giltene/wrk2/master/LICENSE) +* Redis: BSD License (http://redis.io/topics/license) +* FIO: GPL v2 (https://raw.githubusercontent.com/axboe/fio/master/MORAL-LICENSE) + +Although the VM image includes a binary copy of the FIO code, it does not +include the source code used to build it. In accordance to the GPL V2 license +related to the inclusion of binary copies of FIO, the source code used to build +the FIO binary copy was not modified and can be found directly at +``_ or can be obtained by email request to the +maintainer of KloudBuster. + + +Links +----- + +* Complete documentation: ``_ +* `KloudBuster REST API documentation Preview `_ +* Source: ``_ +* Supports/Bugs: ``_ +* Mailing List: kloudbuster-core@lists.launchpad.net + diff --git a/doc/source/usage.rst b/doc/source/usage.rst index 7c62b1b..2885e60 100644 --- a/doc/source/usage.rst +++ b/doc/source/usage.rst @@ -16,14 +16,15 @@ run KloudBuster: * Admin access to the cloud under test (non-admin might work with some tweaks and limitations) - * 3 available floating IPs if running HTTP data plane testing, 2 available - floating IPs if running Storage testing + * 3 available floating IPs if running the HTTP data plane scale test, + * 2 available floating IPs if running the Storage scale test Regardless of the way you launch KloudBuster, you will need the access info and the credentials to the cloud under test. This information can be downloaded -from a Horizon dashboard (Project|Access&Security|Api Access|Download OpenStack -RC File). Save it to your local filesystem for future use. +from the Horizon dashboard (Project|Access&Security|Api Access|Download OpenStack +RC File). Save it to your local file system for future use. +.. _run_server: Running KloudBuster as a Web/REST Server ---------------------------------------- @@ -37,19 +38,19 @@ and is ready to service HTTP and REST requests once up and running. To get the KloudBuster Web server running in any OpenStack cloud: 1. Follow the steps :ref:`here ` to upload the KloudBuster - image to the openstack cloud that will host your KloudBuster web server + image to the OpenStack cloud that will host your KloudBuster web server .. note:: This could be the same as the cloud under test or a different cloud. -2. If necessary, and as for any VM-based web server application bringup, create +2. If necessary, and as for any VM-based web server application bring up, create and configure the Neutron router and network where the KloudBuster web server VM instance will be attached 3. Create or reuse a security group which allows ingress TCP traffic on port 8080 -4. Launch an instance using the KloudBuster image,with the proper security +4. Launch an instance using the KloudBuster image with the proper security group, and connect to the appropriate network. Leave the Key Pair as blank, as we don't need the SSH access to this VM @@ -82,13 +83,13 @@ is up running:: Starting the KloudBuster Server from a git clone ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -If you use git clone, you can bring up the KloudBuster Web/REST server fron the +If you use git clone, you can bring up the KloudBuster Web/REST server from the CLI. KloudBuster uses the `Pecan `_ web server to host both the KloudBuster REST server and the KloudBuster front-end website (which listens to port 8080 by default). From the root of the KloudBuster repository, go to the kb_server directory. If -this is the first time to start the server, run below command once to setup the +this is the first time you start the server, run the below command once to setup the environment:: $ python setup.py develop @@ -111,8 +112,8 @@ Using any browser, point to the provided URL at port 8080. You will get a Login page where you will need to enter: * The type of scale test (HTTP data plane or storage) - * The location of openrc file of the cloud under test - * The credentials for the cloud under test + * The location of the openrc file of the cloud under test + * The password for the cloud under test Interacting with the KloudBuster Server REST Interface @@ -133,8 +134,9 @@ If you do not really need a Web UI or REST interface, you can simply run KloudBuster scale test straight from CLI. KloudBuster is ready to run with the default configuration, which can be -displayed from the command line using *--show-config* option. By default, -KloudBuster will run on a single cloud and run the default HTTP data plane scale +displayed from the command line using *--show-config* option. + +By default, KloudBuster will run on a single cloud and run the default HTTP data plane scale test: * Create 2 tenants, 2 users, and 2 routers; @@ -143,19 +145,41 @@ test: * Create 1 VM running the Redis server (for orchestration) * Create 1 VM running the HTTP traffic generator (default to 1000 connections, 1000 requests per second, and 30 seconds duration - * Measure/aggegate throughput and latency + * Measure/aggregate throughput and latency * Bring down and cleanup Run KloudBuster with the following options:: kloudbuster --tested-rc --tested-passwd -.. note:: +If you installed KloudBuster using git clone you need to explicitly call the python interpreter +since the "kloudbuster" wrapper is only installed with pip install):: - Simply adding *--storage* to the above command will run KloudBuster with - storage testing. + python kloudbuster.py --tested-rc --tested-passwd -The run should take couple of minutes (depending on how fast the cloud can + +If you want to run the default storage scale test, simply adding *--storage*:: + + kloudbuster --storage --tested-rc --tested-passwd + +The default storage scale test will use the following settings: + * Create 1 tenant + * Create 1 router + * Create 1 private network + * Create 1 VM and attach a 10 GB Cinder volume to it + * Perform the default storage workload sequence + * random access 4KB block size, IO depth 4, 100 IOPs for 30 seconds each + * 100% read + * 100% write + * 70% read, 30% write + * sequential access 64KB block size, IO depth 64, 60 MB/sec for 30 seconds + * 100% read + * 100% write + * 70% read, 30% write + * Measure/aggregate IOPs, throughput and latency + * Bring down and cleanup + +The run should take a few minutes (depending on how fast the cloud can create the resources) and you should see the actions taken by KloudBuster displayed on the console. Once this minimal scale test passes, you can tackle more elaborate scale testing by increasing the scale numbers or providing @@ -169,12 +193,16 @@ KloudBuster Configuration To create a custom scale test configuration, make a copy of the default configuration and modify that file to satisfy our own needs. A copy of the default configuration can be obtained by redirecting the output of -*--show-config* to a new file. Once done, provide that custom configuration +*--show-config* to a new file. For example: + + kloudbuster --show-config >scale1.cfg + +Once done, provide that custom configuration file to the KloudBuster command line using the *--config * option. .. note:: - Note that the default configuration is always loaded by KloudBuster and + The default configuration is always loaded by KloudBuster and any default option can be overridden by providing a custom configuration file that only contains modified options. So you can delete all the lines in the configuration file that you do not intend to change @@ -185,7 +213,7 @@ General Options Each item in cfg.scale.yaml is well documented and self-explained. Below is just a quick-start on some important config items that need to be paid more -attention. +attention to. * **vm_creation_concurrency** @@ -258,7 +286,7 @@ In the case of Storage testing: capacity of storage is reached, the overall performance will start to degrade. - e.g. In the randread and randwrite mode, for example the IOPS is limited to + e.g. In the random read and random write mode, for example the IOPS is limited to 100 IOPS/VM. In the iteration of 10 VMs, the requested IOPS for the system is 100 * 10 = 1000. However, the measured IOPS is degraded to only 800 IOPS. So the degraded percentile is calculated as 800/1000=20% for this set of @@ -395,14 +423,14 @@ command line. Displaying the Results ^^^^^^^^^^^^^^^^^^^^^^ -Results can be saved in a file in json format or in html format. The json format +Results can be saved in a file in json format or in HTML format. The json format is more appropriate for usage by any post-processing tool or script while the -html file is more adapted for human usage. +HTML file is more adapted for human usage. The KloudBuster Web UI will display the results using charts and tables when the test is finished running. The KloudBuster CLI provides an option to generate -the html file from the results (*--html* option). It can also generate the html -file from the json results (*--charts-from-json* option). +the HTML file from the results (*--html* option). It can also generate the HTML +file from the JSON results (*--charts-from-json* option). Examples of running KloudBuster diff --git a/kloudbuster/cfg.scale.yaml b/kloudbuster/cfg.scale.yaml index 643e445..43ceba3 100644 --- a/kloudbuster/cfg.scale.yaml +++ b/kloudbuster/cfg.scale.yaml @@ -43,9 +43,9 @@ vm_creation_concurrency: 5 # example to debug) public_key_file: -# ========================== -# SERVER SIDE CONFIG OPTIONS -# ========================== +# ================================================== +# SERVER SIDE CONFIG OPTIONS (HTTP SERVER SIDE ONLY) +# ================================================== server: # Flavor to use for the test images flavor: @@ -93,9 +93,9 @@ server: html_size: 32768 -# ========================== -# CLIENT SIDE CONFIG OPTIONS -# ========================== +# ==================================================== +# CLIENT SIDE CONFIG OPTIONS (HTTP CLIENT AND STORAGE) +# ==================================================== client: # Flavor to use for the test images flavor: @@ -136,6 +136,8 @@ client: # {'vm_start': 0, 'vm_multiple': 1}: 1, 2, 3, 4, 5... # {'vm_start': 0, 'vm_multiple': 5}: 5, 10, 15, 20... vm_multiple: 2 + + # HTTP ONLY # The stop condition for HTTP benchmarking, it is used for KloudBuster to # determine when to stop the progression, and do the cleanup if needed. # It defines as: @@ -154,6 +156,8 @@ client: # [50, 75, 90, 99, 99.9, 99.99, 99.999] # (3) Sets percentile to 0 to disable HTTP request timeout checks; http_stop_limit: [50, 0] + + # STORAGE ONLY # The stop condition for storage benchmarking, it is used for KloudBuster # to determine when to stop the progression, and do the cleanup if needed. # In the mode of random read and random write, this value indicates the