d65bd2f889
This repo is now testing only with Python 3, so let's make a few cleanups: - Remove python 2.7 stanza from setup.py - Remove obsolete sections from setup.cfg - Update classifiers - Switch to using sphinx-build, switch to use openstackdocstheme and update requirements Change-Id: I67ba5ceb1728ee16b866ecf1b71cbf545a01b7d9
95 lines
3.0 KiB
ReStructuredText
95 lines
3.0 KiB
ReStructuredText
.. _stress_field_guide:
|
|
|
|
Tempest Field Guide to Stress Tests
|
|
===================================
|
|
|
|
OpenStack is a distributed, asynchronous system that is prone to race condition
|
|
bugs. These bugs will not be easily found during
|
|
functional testing but will be encountered by users in large deployments in a
|
|
way that is hard to debug. The stress test tries to cause these bugs to happen
|
|
in a more controlled environment.
|
|
|
|
Stress tests are designed to stress an OpenStack environment by running a high
|
|
workload against it and seeing what breaks. The stress test framework runs
|
|
several test jobs in parallel and can run any existing test in Tempest as a
|
|
stress job.
|
|
|
|
Environment
|
|
-----------
|
|
This particular framework assumes your working Nova cluster understands Nova
|
|
API 2.0. The stress tests can read the logs from the cluster. To enable this
|
|
you have to provide the hostname to call 'nova-manage' and
|
|
the private key and user name for ssh to the cluster in the
|
|
[stress] section of tempest.conf. You also need to provide the
|
|
location of the log files:
|
|
|
|
- target_logfiles = "regexp to all log files to be checked for errors"
|
|
- target_private_key_path = "private ssh key for controller and log file nodes"
|
|
- target_ssh_user = "username for controller and log file nodes"
|
|
- target_controller = "hostname or ip of controller node (for nova-manage)
|
|
- log_check_interval = "time between checking logs for errors (default 60s)"
|
|
|
|
To activate logging on your console please make sure that you activate `use_stderr`
|
|
in tempest.conf or use the default `logging.conf.sample` file.
|
|
|
|
Running default stress test set
|
|
-------------------------------
|
|
|
|
Installation
|
|
------------
|
|
#. You first need to clone this repo.::
|
|
|
|
$ git clone https://github.com/openstack/tempest-stress
|
|
$ cd tempest_stress
|
|
|
|
#. Install::
|
|
|
|
$ python setup.py install
|
|
|
|
#. Install `Tempest`_
|
|
|
|
.. _Tempest: http://docs.openstack.org/developer/tempest/overview.html#quickstart
|
|
|
|
|
|
Configuration
|
|
*************
|
|
|
|
To Run stress tests, two configuration files are needed:
|
|
|
|
1. tempest.conf - As per Tempest configuration guidelines here: `configuration`_
|
|
|
|
2. stress_tests.conf - same location as tempest.conf
|
|
|
|
later one is being used to define all config options specific to stress tests.
|
|
|
|
.. _configuration: http://docs.openstack.org/developer/tempest/configuration.html#tempest-configuration
|
|
|
|
|
|
Run
|
|
***
|
|
|
|
Run all tests::
|
|
|
|
$ run-tempest-stress -a -d 30
|
|
|
|
Run specific test::
|
|
|
|
$ run-tempest-stress -t ./tempest_stress/etc/server-create-destroy-test.json -d 30
|
|
|
|
This sample test tries to create a few VMs and kill a few VMs.
|
|
|
|
For more information please refer run-tempest-stress CLI help::
|
|
|
|
$ run-tempest-stress -h
|
|
|
|
Additional Tools
|
|
----------------
|
|
|
|
Sometimes the tests don't finish, or there are failures. In these
|
|
cases, you may want to clean out the nova cluster. We have provided
|
|
some scripts to do this in the ``tools`` subdirectory.
|
|
You can use the following script to destroy any keypairs,
|
|
floating ips, and servers:
|
|
|
|
tempest_stress/tools/cleanup.py
|