From 2643907c6471f892326d920212e32e925b15b3dd Mon Sep 17 00:00:00 2001 From: ahothan Date: Thu, 5 Mar 2015 13:28:35 -0800 Subject: [PATCH] Add flows diagram Change-Id: Ic7f4ac86cd8407d2602148a6e8c4a8c1e0aca365 --- README.rst | 20 ++++++++++++-------- doc/source/images/flows.png | Bin 0 -> 47456 bytes 2 files changed, 12 insertions(+), 8 deletions(-) create mode 100644 doc/source/images/flows.png diff --git a/README.rst b/README.rst index fd64332..6f71bef 100644 --- a/README.rst +++ b/README.rst @@ -8,23 +8,27 @@ VMTP is a data path performance tool for OpenStack clouds. Features -------- -If you need a quick and simple way to get VM level or host level single-flow throughput and latency numbers from any OpenStack cloud, and take into account various Neutron topologies, this is the tool to use. VMTP is a python application that will automatically perform ping connectivity, ping round trip time measurement (latency) and TCP/UDP throughput measurement for the following flows on any OpenStack deployment: +Have you ever had the need for a quick, simple and automatable way to get VM-level or host-level single-flow throughput and latency numbers from any OpenStack cloud, and take into account various Neutron topologies? +Or check whether some OpenStack configuration option, Neutron plug-in performs to expectation or if there is any data path impact for upgrading to a different OpenStack release? +VMTP is a small python application that will automatically perform ping connectivity, round trip time measurement (latency) and TCP/UDP throughput measurement for the following East/West flows on any OpenStack deployment: -* VM to VM same network (private fixed IP) -* VM to VM different network same tenant (intra-tenant L3 fixed IP) -* VM to VM different network and tenant (floating IP inter-tenant L3) +* VM to VM same network (private fixed IP, flow #1) +* VM to VM different network using fixed IP (same as intra-tenant L3 fixed IP, flow #2) +* VM to VM different network using floating IP and NAT (same as floating IP inter-tenant L3, flow #3) -Optionally, when an external Linux host is available: +Optionally, when an external Linux host is available for testing North/South flows: -* External host/VM download and upload throughput/latency (L3/floating IP) +* External host/VM download and upload throughput/latency (L3/floating IP, flow #4 and #5) + +.. image:: images/flows.png Optionally, when SSH login to any Linux host (native or virtual) is available: -* Host to host throughput (intra-node and inter-node) +* Host to host process-level throughput/latency (intra-node and inter-node) Optionally, VMTP can extract automatically CPU usage from all native hosts in the cloud during the throughput tests, provided the Ganglia monitoring service (gmond) is installed and enabled on those hosts. -For VM-related flows, VMTP will automatically create the necessary OpenStack resources (router, networks, subnets, key pairs, security groups, test VMs), perform the throughput measurements then cleanup all related resources before exiting. +For VM-related flows, VMTP will automatically create the necessary OpenStack resources (router, networks, subnets, key pairs, security groups, test VMs) using the public OpenStack API, install the test tools then orchestrate them to gather the throughput measurements then cleanup all related resources before exiting. See the usage page for the description of all the command line arguments supported by VMTP. diff --git a/doc/source/images/flows.png b/doc/source/images/flows.png new file mode 100644 index 0000000000000000000000000000000000000000..8bd3b14beba48ddf7f739ed261e3c07e1b5d4cd8 GIT binary patch literal 47456 zcmeFZWmMcv(%0D&upzoiH*(k~XRB-_cQfezGlZ)FsnUiy} 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 z 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