Reset the final_result after clean_up

Change-Id: I0555143be186bb6a497874e3aef031d766318583
This commit is contained in:
Yichen Wang 2015-10-20 14:56:41 -07:00
parent 340377a899
commit 8a8dab7906
3 changed files with 60 additions and 24 deletions

View File

@ -1,53 +1,86 @@
========
Overview
========
========
How good is your OpenStack data plane under real heavy load?
KloudBuster is a tool that can load the data plane of any Neutron 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 of any Neutron OpenStack
cloud at massive scale and can measure how well the cloud behaves under load.
Features
--------
* Neutron configuration agnostic (any encapsulation, any overlay, any plugin)
* 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)
* User can specify any number of tenants, routers, networks (only limited by cloud capacity) and KloudBuster will stage all these resources in a way that makes sense for operational data plane traffic
* 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)
* User can specify any number of tenants, routers, networks (only limited by
cloud capacity) and KloudBuster will stage all these resources in a way that
makes sense for operational data plane traffic
* HTTP traffic load:
* real HTTP servers (Nginx) running in real Linux images (Ubuntu14.04)
* can specify any number of HTTP servers per tenant
* high performance and highly scalable HTTP traffic generators to simulate huge number of HTTP users and TCP connections (hundreds of thousands to millions)
* overall throughput and latency measurement for every single HTTP request (typically millions per run) using the open source HdrHistogram library
* Real HTTP servers (Nginx) running in real Linux images (Ubuntu 14.04)
* Can specify any number of HTTP servers per tenant
* High performance and highly scalable HTTP traffic generators to simulate
huge number of HTTP users and TCP connections (hundreds of thousands
to millions)
* overall throughput and latency measurement 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
* Highly efficient and scalable metric aggregation
* Can support periodic reporting and aggregation of results
* Automatic cleanup upon termination (by default)
* Manual cleanup script
* Server mode and REST interface:
* allows KloudBuster to be driven by other programs
* Allows KloudBuster to be driven by other programs
* Swagger 2.0 YAML description of the REST interface
* Aggregated results provide an easy to understand way to assess the scale of the cloud under test
* Aggregated results provide an easy to understand way to assess the scale
of the cloud under test
* KloudBuster VM images built using OpenStack DIB (Disk Image Builder)
* Verified to work on any OpenStack release starting from IceHouse
Limitations
-----------
* requires Neutron networking (does not support Nova networking)
* only supports HTTP traffic in this version
* Requires Neutron networking (does not support Nova networking)
* Only supports HTTP traffic in this version
Contributions and Feedbacks
---------------------------
If you are interested in OpenStack Performance and Scale, contributions and feedbakcs are welcome!
The KloudBuster code is still relatively small in size and touches many different areas such as:
If you are interested in OpenStack Performance and Scale, contributions and
feedbacks are welcome!
* backend control plane and data plane (python, C)
* frontend RESTful interface
The KloudBuster code is still relatively small in size and touches many
different areas such as:
* Backend control plane and data plane (python, C)
* Frontend RESTful interface
* REST modeilizatiuon (swagger)
* Web User Interface (javascript)
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.
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
@ -55,7 +88,8 @@ 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 `<http://www.apache.org/licenses/LICENSE-2.0>`_
You may obtain a copy of the License at
`<http://www.apache.org/licenses/LICENSE-2.0>`_
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
@ -66,7 +100,8 @@ 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)
* wrk2: Apache License 2.0
(https://raw.githubusercontent.com/giltene/wrk2/master/LICENSE)
* redis: BSD License (http://redis.io/topics/license)

View File

@ -191,12 +191,12 @@ distribution spectrum generated by KloudBuster).
Different cloud has different capacity to handle data plane traffics.
The best practice is to have an estimate first, and get started.
In a typical 10GE VLAN deployment, the line rate is about 9Gbps, or
1.1GB/s. For pure HTTP traffic, the effective rate minus the overhead
is approximately 70%~80% of the line rate, which is about 750 MB/s. Each
1.125 GB/s. For pure HTTP traffic, the effective rate minus the overhead
is approximately 80% of the line rate, which is about 920 MB/s. Each
HTTP request will consume 32KB traffic for loading the HTML page (HTML
payload size is configurable), so the cloud capacity is about 24,000 req/sec.
payload size is configurable), so the cloud capacity is about 30,000 req/sec.
If you are staging a cloud with 20 testing pairs, the rate_limit for each
VM settings will be about (24000 / 20 = 1200).
VM settings will be about (30000 / 20 = 1500).
The capacity for handling connections varies among factors including
kernel tuning, server software, server configs, etc. and hard to have

View File

@ -492,6 +492,7 @@ class KloudBuster(object):
# Set the kloud to None
self.kloud = None
self.testing_kloud = None
self.final_result = []
def dump_logs(self, offset=0):
if not self.fp_logfile: