Merge "Add test plan for testing of API of k8s."
This commit is contained in:
commit
bfd23fbace
232
doc/source/test_plans/container_cluster_systems/API_latency.rst
Normal file
232
doc/source/test_plans/container_cluster_systems/API_latency.rst
Normal file
@ -0,0 +1,232 @@
|
|||||||
|
|
||||||
|
.. _Measuring_of_API_performance_of_container_cluster_system:
|
||||||
|
|
||||||
|
*********************************************************
|
||||||
|
Measuring of API performance of container cluster systems
|
||||||
|
*********************************************************
|
||||||
|
|
||||||
|
:status: **ready**
|
||||||
|
:version: 1.0
|
||||||
|
|
||||||
|
:Abstract:
|
||||||
|
|
||||||
|
This document describes a test plan for quantifying the API performance of
|
||||||
|
container cluster systems.
|
||||||
|
|
||||||
|
Test Plan
|
||||||
|
=========
|
||||||
|
Test Environment
|
||||||
|
----------------
|
||||||
|
Preparation
|
||||||
|
^^^^^^^^^^^
|
||||||
|
To test container cluster some tool dedicated to measure CRUD operations
|
||||||
|
latency is needed. For Kubernetes container cluster system we can propose
|
||||||
|
"Load test" of `e2e-tests`_ tool.
|
||||||
|
|
||||||
|
Environment description
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
Test results MUST include a description of the environment used. The following
|
||||||
|
items should be described:
|
||||||
|
|
||||||
|
- **Hardware configuration of each server.** If virtual machines are used then
|
||||||
|
both physical and virtual hardware should be fully documented.
|
||||||
|
An example format is given below:
|
||||||
|
|
||||||
|
.. table:: Description of servers hardware
|
||||||
|
|
||||||
|
+-------+----------------+-------+-------+
|
||||||
|
|server |name | | |
|
||||||
|
| +----------------+-------+-------+
|
||||||
|
| |role | | |
|
||||||
|
| +----------------+-------+-------+
|
||||||
|
| |vendor,model | | |
|
||||||
|
| +----------------+-------+-------+
|
||||||
|
| |operating_system| | |
|
||||||
|
+-------+----------------+-------+-------+
|
||||||
|
|CPU |vendor,model | | |
|
||||||
|
| +----------------+-------+-------+
|
||||||
|
| |processor_count | | |
|
||||||
|
| +----------------+-------+-------+
|
||||||
|
| |core_count | | |
|
||||||
|
| +----------------+-------+-------+
|
||||||
|
| |frequency_MHz | | |
|
||||||
|
+-------+----------------+-------+-------+
|
||||||
|
|RAM |vendor,model | | |
|
||||||
|
| +----------------+-------+-------+
|
||||||
|
| |amount_MB | | |
|
||||||
|
+-------+----------------+-------+-------+
|
||||||
|
|NETWORK|interface_name | | |
|
||||||
|
| +----------------+-------+-------+
|
||||||
|
| |vendor,model | | |
|
||||||
|
| +----------------+-------+-------+
|
||||||
|
| |bandwidth | | |
|
||||||
|
+-------+----------------+-------+-------+
|
||||||
|
|STORAGE|dev_name | | |
|
||||||
|
| +----------------+-------+-------+
|
||||||
|
| |vendor,model | | |
|
||||||
|
| +----------------+-------+-------+
|
||||||
|
| |SSD/HDD | | |
|
||||||
|
| +----------------+-------+-------+
|
||||||
|
| |size | | |
|
||||||
|
+-------+----------------+-------+-------+
|
||||||
|
|
||||||
|
- **Configuration of hardware network switches** The configuration file from
|
||||||
|
the switch can be downloaded and attached.
|
||||||
|
|
||||||
|
- **Configuration of virtual machines and virtual networks (if they are used)**
|
||||||
|
The configuration files can be attached, along with the mapping of virtual
|
||||||
|
machines to host machines.
|
||||||
|
|
||||||
|
- **Network scheme.** The plan should show how all hardware is connected and
|
||||||
|
how the components communicate. All ethernet/fibrechannel and VLAN channels
|
||||||
|
should be included. Each interface of every hardware component should be
|
||||||
|
matched with the corresponding L2 channel and IP address.
|
||||||
|
|
||||||
|
- **Software configuration of the container cluster system** `sysctl.conf` and
|
||||||
|
any other kernel file that is changed from the default should be attached.
|
||||||
|
List of installed packages should be attached. Specifications of the
|
||||||
|
operating system, network interfaces configuration, and disk partitioning
|
||||||
|
configuration should be included. If distributed provisioning systems are
|
||||||
|
to be tested then the parts that are distributed need to be described.
|
||||||
|
|
||||||
|
- **Software configuration of the node with test tool** The operating system,
|
||||||
|
disk partitioning scheme, network interface configuration, installed packages
|
||||||
|
and other components of client nodes define limits which a client can
|
||||||
|
experience during sending requests and getting responses to/from docker
|
||||||
|
repository.
|
||||||
|
|
||||||
|
Test Case #1: API latencies of requests which make actions on containers
|
||||||
|
------------------------------------------------------------------------
|
||||||
|
Description
|
||||||
|
^^^^^^^^^^^
|
||||||
|
During this test basic actions with containers like start, delete, update
|
||||||
|
should be performed and API latencies should be measured.
|
||||||
|
|
||||||
|
List of performance metrics
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
.. table:: list of test metrics to be collected during this test
|
||||||
|
|
||||||
|
+-----------------------------+---------------------------------------------+
|
||||||
|
| Parameter |Description |
|
||||||
|
+=============================+=============================================+
|
||||||
|
|| CONTAINER_API_LATENCIES | | The time which a client spends to get a |
|
||||||
|
|| (GET,PUT,POST,DELETE, LIST | | response from container system API to make|
|
||||||
|
|| types of requests) | | an action on a docker container |
|
||||||
|
+-----------------------------+---------------------------------------------+
|
||||||
|
|
||||||
|
Measuring values of API latencies of requests which make actions on containers
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
1.
|
||||||
|
Deploy container cluster system from scratch. We should be sure that there is
|
||||||
|
no data in the container cluster system.
|
||||||
|
|
||||||
|
2.
|
||||||
|
Make create, delete, update and any available requests to perform an action
|
||||||
|
on container to API of container cluster system and measure latencies of
|
||||||
|
the responses. The API client which you use should't crate a big load on the
|
||||||
|
cluster system. The load should be spreading over time.
|
||||||
|
|
||||||
|
3.
|
||||||
|
As a result of the previous step you should be able to provide the table with
|
||||||
|
99 percentile of API latencies in depend on type of requests. You need to
|
||||||
|
fill the table similar the table bellow with calculated values:
|
||||||
|
|
||||||
|
.. table:: API latencies of requests which make actions on containers
|
||||||
|
|
||||||
|
+---------------------------------+-----------------------------------------+
|
||||||
|
| Method | Perc99 |
|
||||||
|
+=================================+=========================================+
|
||||||
|
| PUT | |
|
||||||
|
+---------------------------------+-----------------------------------------+
|
||||||
|
| GET | |
|
||||||
|
+---------------------------------+-----------------------------------------+
|
||||||
|
| LIST | |
|
||||||
|
+---------------------------------+-----------------------------------------+
|
||||||
|
| DELETE | |
|
||||||
|
+---------------------------------+-----------------------------------------+
|
||||||
|
| POST | |
|
||||||
|
+---------------------------------+-----------------------------------------+
|
||||||
|
|
||||||
|
Test Case #2: API latencies of any other supported requests
|
||||||
|
-----------------------------------------------------------
|
||||||
|
Description
|
||||||
|
^^^^^^^^^^^
|
||||||
|
In opposite of
|
||||||
|
`Test Case #1: API latencies of requests which make actions on containers`_ in
|
||||||
|
in this test case requests different from actions with containers should be
|
||||||
|
performed and API latencies should be measured. The supported by API of
|
||||||
|
container cluster system requests depend on the container cluster system. For
|
||||||
|
example for Kubernetes it can be actions with replicationcontrollers or
|
||||||
|
namespaces.
|
||||||
|
|
||||||
|
List of performance metrics
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
.. table:: list of test metrics to be collected during this test
|
||||||
|
|
||||||
|
+-----------------------------+---------------------------------------------+
|
||||||
|
| Parameter |Description |
|
||||||
|
+=============================+=============================================+
|
||||||
|
|| API_LATENCIES | | The time which a client spends to get a |
|
||||||
|
|| (GET,PUT,POST,DELETE, LIST | | response from container system API |
|
||||||
|
|| types of requests) | | |
|
||||||
|
+-----------------------------+---------------------------------------------+
|
||||||
|
|
||||||
|
Measuring values of API latencies of any other supported requests
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
1.
|
||||||
|
Deploy container cluster system from scratch. We should be sure that there is
|
||||||
|
no data in the container cluster system.
|
||||||
|
|
||||||
|
2.
|
||||||
|
Make available requests to API of container cluster system and measure
|
||||||
|
latencies of the responses. The API client which you use should't crate a big
|
||||||
|
load on the cluster system. The load should be spreading over time.
|
||||||
|
|
||||||
|
3.
|
||||||
|
As a result of the previous step you should be able to provide the table with
|
||||||
|
99 percentile of API latencies in depend on type of requests. You need to
|
||||||
|
fill the table similar the table bellow with calculated values:
|
||||||
|
|
||||||
|
.. table:: Table #1 API latencies of requests which make actions on item #1
|
||||||
|
|
||||||
|
+---------------------------------+-----------------------------------------+
|
||||||
|
| Method | Perc99 |
|
||||||
|
+=================================+=========================================+
|
||||||
|
| PUT | |
|
||||||
|
+---------------------------------+-----------------------------------------+
|
||||||
|
| GET | |
|
||||||
|
+---------------------------------+-----------------------------------------+
|
||||||
|
| LIST | |
|
||||||
|
+---------------------------------+-----------------------------------------+
|
||||||
|
| DELETE | |
|
||||||
|
+---------------------------------+-----------------------------------------+
|
||||||
|
| POST | |
|
||||||
|
+---------------------------------+-----------------------------------------+
|
||||||
|
|
||||||
|
.. table:: Table #2 API latencies of requests which make actions on item #2
|
||||||
|
|
||||||
|
+---------------------------------+-----------------------------------------+
|
||||||
|
| Method | Perc99 |
|
||||||
|
+=================================+=========================================+
|
||||||
|
| PUT | |
|
||||||
|
+---------------------------------+-----------------------------------------+
|
||||||
|
| GET | |
|
||||||
|
+---------------------------------+-----------------------------------------+
|
||||||
|
| LIST | |
|
||||||
|
+---------------------------------+-----------------------------------------+
|
||||||
|
| DELETE | |
|
||||||
|
+---------------------------------+-----------------------------------------+
|
||||||
|
| POST | |
|
||||||
|
+---------------------------------+-----------------------------------------+
|
||||||
|
|
||||||
|
.. references:
|
||||||
|
|
||||||
|
.. _e2e-tests: https://github.com/kubernetes/kubernetes/blob/release-1.4/docs/devel/e2e-tests.md
|
||||||
|
|
||||||
|
Reports
|
||||||
|
=======
|
||||||
|
|
||||||
|
Test plan execution reports:
|
||||||
|
* :ref:`Results_of_Measuring_of_API_performance_of_Kubernetes`
|
22
doc/source/test_plans/container_cluster_systems/index.rst
Normal file
22
doc/source/test_plans/container_cluster_systems/index.rst
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
Container cluster systems
|
||||||
|
*************************
|
||||||
|
|
||||||
|
Abstract
|
||||||
|
========
|
||||||
|
|
||||||
|
This part of documentation describes different aspects of testing of container
|
||||||
|
cluster systems
|
||||||
|
|
||||||
|
Contents
|
||||||
|
========
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:numbered:
|
||||||
|
:maxdepth: 2
|
||||||
|
|
||||||
|
performance_and_scaling
|
||||||
|
API_latency
|
||||||
|
|
||||||
|
.. raw:: pdf
|
||||||
|
|
||||||
|
PageBreak oneColumn
|
Loading…
Reference in New Issue
Block a user