RabbitMQ performance report

Change-Id: I5ca7e875ddb0655d36d06a592e51b02697f23f41
This commit is contained in:
Ilya Shakhat 2016-03-28 12:53:11 +03:00
parent d43a16fc67
commit 8e3740556d
46 changed files with 3126 additions and 0 deletions

View File

@ -9,4 +9,5 @@ Test Results
.. toctree:: .. toctree::
:maxdepth: 2 :maxdepth: 2
mq/rabbitmq/index
mq_ha/index mq_ha/index

View File

@ -0,0 +1,494 @@
RabbitMQ performance (Client and Server connected to Master), HA queues enabled
-------------------------------------------------------------------------------
This report contains results of :ref:`message_queue_performance` execution
with `Oslo.messaging Simulator`_. Both simulator client and simulator server
are connected to Master node. `RabbitMQ HA queues`_ are enabled.
.. image:: topology_cmsm_ha.*
Simulator is configured with `eventlet` executor running in 10 threads.
The overall number of threads is calculated as multiplication of eventlet
threads, number of processes and number of used nodes.
Test Case 1: RPC CALL Throughput Test
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Message processing
~~~~~~~~~~~~~~~~~~
Messages are collected at 3 points: ``sent`` - messages sent by the client,
``received`` - messages received by the server, ``round-trip`` - replies
received by the client. Also the number of lost messages is calculated.
Sizes of messages is based on the distribution of messages collected on
the 100-node cloud.
.. image:: rpc_call_message_count.*
.. list-table:: RPC CALL Message count
:header-rows: 1
*
- threads
- sent, msg
- received, msg
- round-trip, msg
- lost, msg
*
- 50
- 244710
- 244710
- 244710
- 0
*
- 100
- 223377
- 223377
- 223377
- 0
*
- 250
- 201327
- 201327
- 201327
- 0
*
- 350
- 200093
- 200093
- 200093
- 0
*
- 500
- 169967
- 169967
- 169967
- 0
The throughput, latency and RabbitMQ CPU utilization
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The chart shows the throughput, latency and CPU utilization by RabbitMQ server
depending on number of concurrent threads.
.. image:: rpc_call_throughput_latency_and_rabbitmq_cpu_utilization_depending_on_thread_count.*
.. list-table:: RPC CALL throughput, latency and RabbitMQ CPU utilization depending on thread count
:header-rows: 1
*
- threads
- throughput, msg/sec
- latency, ms
- RabbitMQ CPU, %
*
- 50
- 2393.8
- 18.7
- 1487.0
*
- 100
- 2207.5
- 44.2
- 1370.3
*
- 250
- 1987.4
- 124.1
- 1725.0
*
- 350
- 1967.3
- 174.9
- 1717.3
*
- 500
- 1665.8
- 294.2
- 1620.1
Detailed RabbitMQ CPU consumption
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Thus chart shows statistics on RabbitMQ CPU consumption per nodes.
.. image:: rabbitmq_nodes_cpu_consumption_during_rpc_call_load_test.*
.. list-table:: RabbitMQ nodes CPU consumption during RPC CALL load test
:header-rows: 1
*
- threads
- Master total, %
- Slave 1 total, %
- Slave 2 total, %
- Master sys, %
- Slave 1 sys, %
- Slave 2 sys, %
*
- 50
- 1255.5
- 122.1
- 109.4
- 353.2
- 33.0
- 29.2
*
- 100
- 1142.8
- 118.2
- 109.3
- 319.4
- 29.9
- 26.7
*
- 250
- 1475.9
- 127.6
- 121.5
- 416.9
- 32.6
- 29.5
*
- 350
- 1459.3
- 129.9
- 128.1
- 416.0
- 32.7
- 31.1
*
- 500
- 1358.8
- 128.5
- 132.7
- 396.1
- 32.1
- 31.1
Test Case 2: RPC CAST Throughput Test
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Message processing
~~~~~~~~~~~~~~~~~~
Messages are collected at 2 points: ``sent`` - messages sent by the client
and ``received`` - messages received by the server. Also the number of lost
messages is calculated. Sizes of messages is based on the distribution of
messages collected on the 100-node cloud.
.. image:: rpc_cast_message_count.*
.. list-table:: RPC CAST Message count
:header-rows: 1
*
- threads
- sent, msg
- received, msg
- lost, msg
*
- 50
- 606121
- 606121
- 0
*
- 100
- 674586
- 674586
- 0
*
- 250
- 463741
- 463741
- 0
*
- 350
- 451210
- 451210
- 0
*
- 500
- 444167
- 444167
- 0
The throughput, latency and RabbitMQ CPU utilization
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The chart shows the throughput, latency and CPU utilization by RabbitMQ server
depending on number of concurrent threads.
.. image:: rpc_cast_throughput_latency_and_rabbitmq_cpu_utilization_depending_on_thread_count.*
.. list-table:: RPC CAST throughput, latency and RabbitMQ CPU utilization depending on thread count
:header-rows: 1
*
- threads
- throughput, msg/sec
- latency, ms
- RabbitMQ CPU consumption, %
*
- 50
- 5982.4
- 5.9
- 1308.1
*
- 100
- 6669.4
- 7.8
- 1716.1
*
- 250
- 4588.7
- 38.3
- 1654.5
*
- 350
- 4458.9
- 57.7
- 1499.3
*
- 500
- 4363.8
- 87.2
- 1568.4
Detailed RabbitMQ CPU consumption
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Thus chart shows statistics on RabbitMQ CPU consumption per nodes.
.. image:: rabbitmq_nodes_cpu_consumption_during_rpc_cast_load_test.*
.. list-table:: RabbitMQ nodes CPU consumption during RPC CAST load test
:header-rows: 1
*
- threads
- Master total, %
- Slave 1 total, %
- Slave 2 total, %
- Master sys, %
- Slave 1 sys, %
- Slave 2 sys, %
*
- 50
- 1148.3
- 88.9
- 70.9
- 300.9
- 22.4
- 18.3
*
- 100
- 1564.5
- 83.0
- 68.5
- 440.5
- 20.1
- 16.3
*
- 250
- 1534.4
- 61.0
- 59.0
- 452.4
- 14.8
- 14.3
*
- 350
- 1379.4
- 57.6
- 62.3
- 409.6
- 13.7
- 15.5
*
- 500
- 1457.8
- 52.0
- 58.6
- 434.2
- 12.4
- 15.4
Test Case 3: Notification Throughput Test
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Message processing
~~~~~~~~~~~~~~~~~~
Messages are collected at 2 points: ``sent`` - messages sent by the client
and ``received`` - messages received by the server. Also the number of lost
messages is calculated. Sizes of messages is based on the distribution of
messages collected on the 100-node cloud.
.. image:: notify_message_count.*
.. list-table:: NOTIFY Message count
:header-rows: 1
*
- threads
- sent, msg
- received, msg
- lost, msg
*
- 50
- 589725
- 589725
- 0
*
- 100
- 702420
- 702420
- 0
*
- 250
- 484577
- 484561
- 16
*
- 350
- 467109
- 467109
- 0
*
- 500
- 457309
- 457309
- 0
The throughput, latency and RabbitMQ CPU utilization
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The chart shows the throughput, latency and CPU utilization by RabbitMQ server
depending on number of concurrent threads.
.. image:: notify_throughput_latency_and_rabbitmq_cpu_utilization_depending_on_thread_count.*
.. list-table:: NOTIFY throughput, latency and RabbitMQ CPU utilization depending on thread count
:header-rows: 1
*
- threads
- throughput, msg/sec
- latency, ms
- RabbitMQ CPU consumption, %
*
- 50
- 5819.5
- 5.4
- 1387.3
*
- 100
- 6943.4
- 7.5
- 1693.9
*
- 250
- 4794.8
- 34.0
- 1729.7
*
- 350
- 4622.3
- 54.6
- 1686.4
*
- 500
- 4525.5
- 88.6
- 1644.3
Detailed RabbitMQ CPU consumption
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Thus chart shows statistics on RabbitMQ CPU consumption per nodes.
.. image:: rabbitmq_nodes_cpu_consumption_during_notify_load_test.*
.. list-table:: RabbitMQ nodes CPU consumption during NOTIFY load test
:header-rows: 1
*
- threads
- Master total, %
- Slave 1 total, %
- Slave 2 total, %
- Master sys, %
- Slave 1 sys, %
- Slave 2 sys, %
*
- 50
- 1220.5
- 107.3
- 59.4
- 319.5
- 28.4
- 16.2
*
- 100
- 1531.8
- 100.8
- 61.3
- 427.4
- 23.7
- 15.5
*
- 250
- 1609.9
- 72.9
- 46.9
- 476.1
- 18.2
- 12.8
*
- 350
- 1573.8
- 67.1
- 45.4
- 466.8
- 16.5
- 12.2
*
- 500
- 1529.6
- 68.8
- 45.9
- 455.8
- 16.8
- 12.5
.. references:
.. _message_queue_performance: http://docs.openstack.org/developer/performance-docs/test_plans/mq/plan.html
.. _Oslo.messaging Simulator: https://github.com/openstack/oslo.messaging/blob/master/tools/simulator.py
.. _RabbitMQ HA queues: https://www.rabbitmq.com/ha.html

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 19 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 19 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 25 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 26 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 26 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 21 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 20 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 18 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 19 KiB

View File

@ -0,0 +1,238 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="580"
height="350"
viewBox="0 0 580.00001 350"
id="svg2"
version="1.1"
inkscape:version="0.91 r13725"
sodipodi:docname="topology-cmsm-ha.svg">
<defs
id="defs4">
<marker
inkscape:isstock="true"
style="overflow:visible"
id="marker4607"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow1Mend">
<path
transform="matrix(-0.4,0,0,-0.4,-4,0)"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
id="path4609"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="Arrow1Mend"
orient="auto"
refY="0"
refX="0"
id="Arrow1Mend"
style="overflow:visible"
inkscape:isstock="true"
inkscape:collect="always">
<path
id="path4250"
d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
transform="matrix(-0.4,0,0,-0.4,-4,0)"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="Arrow1Lend"
orient="auto"
refY="0"
refX="0"
id="Arrow1Lend"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path4244"
d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
style="fill:#44aa00;fill-opacity:1;fill-rule:evenodd;stroke:#44aa00;stroke-width:1pt;stroke-opacity:1"
transform="matrix(-0.8,0,0,-0.8,-10,0)"
inkscape:connector-curvature="0" />
</marker>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.98994949"
inkscape:cx="323.60285"
inkscape:cy="205.89558"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1855"
inkscape:window-height="1056"
inkscape:window-x="65"
inkscape:window-y="24"
inkscape:window-maximized="1"
units="px"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-71.73098,-42.362206)">
<path
inkscape:connector-curvature="0"
id="path4605"
d="M 454.66953,266.46352 363.7558,169.48888"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker4607)"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow1Mend)"
d="m 270.72088,266.46352 88.89343,-93.94418"
id="path4235"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<rect
style="fill:#b3ff80;fill-opacity:0.59215689;stroke:#000000;stroke-width:3;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect4140"
width="115.15739"
height="78.286819"
x="112.12693"
y="91.202057" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:23.59143066px;line-height:125%;font-family:'Droid Serif';-inkscape-font-specification:'Droid Serif';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="138.16592"
y="139.84962"
id="text4142"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4144"
x="138.16592"
y="139.84962">Slave</tspan></text>
<rect
y="91.202057"
x="304.05591"
height="78.286819"
width="115.15739"
id="rect4146"
style="fill:#b3ff80;fill-opacity:0.59215689;stroke:#000000;stroke-width:3;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<text
sodipodi:linespacing="125%"
id="text4148"
y="139.84962"
x="324.09491"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:23.59143066px;line-height:125%;font-family:'Droid Serif';-inkscape-font-specification:'Droid Serif';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="139.84962"
x="324.09491"
id="tspan4150"
sodipodi:role="line">Master</tspan></text>
<rect
y="91.202057"
x="495.98492"
height="78.286819"
width="115.15739"
id="rect4152"
style="fill:#b3ff80;fill-opacity:0.59215689;stroke:#000000;stroke-width:3;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<text
sodipodi:linespacing="125%"
id="text4154"
y="139.84962"
x="522.02386"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:23.59143066px;line-height:125%;font-family:'Droid Serif';-inkscape-font-specification:'Droid Serif';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="139.84962"
x="522.02386"
id="tspan4156"
sodipodi:role="line">Slave</tspan></text>
<rect
y="266.46353"
x="211.37442"
height="78.286819"
width="115.15739"
id="rect4158"
style="fill:none;fill-opacity:0.59215686;stroke:#000000;stroke-width:3;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<text
sodipodi:linespacing="125%"
id="text4160"
y="315.11111"
x="237.41341"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:23.59143066px;line-height:125%;font-family:'Droid Serif';-inkscape-font-specification:'Droid Serif';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="315.11111"
x="237.41341"
id="tspan4162"
sodipodi:role="line">client</tspan></text>
<rect
style="fill:none;fill-opacity:0.59215686;stroke:#000000;stroke-width:3;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect4164"
width="115.15739"
height="78.286819"
x="396.73743"
y="266.46353" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:23.59143066px;line-height:125%;font-family:'Droid Serif';-inkscape-font-specification:'Droid Serif';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="418.77643"
y="315.11111"
id="text4166"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4168"
x="418.77643"
y="315.11111">server</tspan></text>
<rect
style="fill:none;fill-opacity:0.59215686;stroke:#808080;stroke-width:1.99999976;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.32704408"
id="rect4225"
width="578"
height="348"
x="72.73098"
y="43.362206" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
d="m 227.14286,122.07649 76.42857,0"
id="path4591"
inkscape:connector-curvature="0" />
<path
inkscape:connector-curvature="0"
id="path4595"
d="m 419.14286,122.07649 76.42857,0"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path4210"
d="m 227.14286,138.07649 76.42857,0"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
d="m 419.14286,138.07649 76.42857,0"
id="path4212"
inkscape:connector-curvature="0" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 9.8 KiB

View File

@ -0,0 +1,496 @@
RabbitMQ performance (Client and Server connected to Master)
------------------------------------------------------------
This report contains results of :ref:`message_queue_performance` execution
with `Oslo.messaging Simulator`_. Both simulator client and simulator server
are connected to Master node. `RabbitMQ HA queues`_ are disabled.
.. image:: topology_cmsm.*
Simulator is configured with `eventlet` executor running in 10 threads.
The overall number of threads is calculated as multiplication of eventlet
threads, number of processes and number of used nodes.
Test Case 1: RPC CALL Throughput Test
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Message processing
~~~~~~~~~~~~~~~~~~
Messages are collected at 3 points: ``sent`` - messages sent by the client,
``received`` - messages received by the server, ``round-trip`` - replies
received by the client. Also the number of lost messages is calculated.
Sizes of messages is based on the distribution of messages collected on
the 100-node cloud.
.. image:: rpc_call_message_count.*
.. list-table:: RPC CALL Message count
:header-rows: 1
*
- threads
- sent, msg
- received, msg
- round-trip, msg
- lost, msg
*
- 50
- 301010
- 301010
- 301010
- 0
*
- 100
- 426252
- 426252
- 426252
- 0
*
- 250
- 518273
- 518273
- 518273
- 0
*
- 350
- 514594
- 514594
- 514594
- 0
*
- 500
- 405731
- 405898
- 405731
- 0
The throughput, latency and RabbitMQ CPU utilization
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The chart shows the throughput, latency and CPU utilization by RabbitMQ server
depending on number of concurrent threads.
.. image:: rpc_call_throughput_latency_and_rabbitmq_cpu_utilization_depending_on_thread_count.*
.. list-table:: RPC CALL throughput, latency and RabbitMQ CPU utilization depending on thread count
:header-rows: 1
*
- threads
- throughput, msg/sec
- latency, ms
- RabbitMQ CPU, %
*
- 50
- 2956.7
- 13.8
- 835.8
*
- 100
- 4197.8
- 21.5
- 1634.4
*
- 250
- 5122.3
- 47.5
- 1511.7
*
- 350
- 5088.6
- 67.5
- 1406.3
*
- 500
- 3978.6
- 98.3
- 1494.8
Detailed RabbitMQ CPU consumption
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Thus chart shows statistics on RabbitMQ CPU consumption per nodes.
.. image:: rabbitmq_nodes_cpu_consumption_during_rpc_call_load_test.*
.. list-table:: RabbitMQ nodes CPU consumption during RPC CALL load test
:header-rows: 1
*
- threads
- Master total, %
- Slave 1 total, %
- Slave 2 total, %
- Master sys, %
- Slave 1 sys, %
- Slave 2 sys, %
*
- 50
- 820.6
- 5.8
- 9.4
- 210.8
- 2.0
- 2.9
*
- 100
- 1618.2
- 6.6
- 9.5
- 483.2
- 2.1
- 2.9
*
- 250
- 1496.4
- 6.2
- 9.2
- 443.8
- 2.2
- 2.6
*
- 350
- 1390.6
- 6.1
- 9.7
- 406.2
- 2.0
- 2.7
*
- 500
- 1479.2
- 6.6
- 9.1
- 432.0
- 2.2
- 2.4
Test Case 2: RPC CAST Throughput Test
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Message processing
~~~~~~~~~~~~~~~~~~
Messages are collected at 2 points: ``sent`` - messages sent by the client
and ``received`` - messages received by the server. Also the number of lost
messages is calculated. Sizes of messages is based on the distribution of
messages collected on the 100-node cloud.
.. image:: rpc_cast_message_count.*
.. list-table:: RPC CAST Message count
:header-rows: 1
*
- threads
- sent, msg
- received, msg
- lost, msg
*
- 50
- 685704
- 685704
- 0
*
- 100
- 948844
- 948844
- 0
*
- 250
- 625096
- 625096
- 0
*
- 350
- 578176
- 578176
- 0
*
- 500
- 565903
- 565903
- 0
The throughput, latency and RabbitMQ CPU utilization
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The chart shows the throughput, latency and CPU utilization by RabbitMQ server
depending on number of concurrent threads.
.. image:: rpc_cast_throughput_latency_and_rabbitmq_cpu_utilization_depending_on_thread_count.*
.. list-table:: RPC CAST throughput, latency and RabbitMQ CPU utilization depending on thread count
:header-rows: 1
*
- threads
- throughput, msg/sec
- latency, ms
- RabbitMQ CPU consumption, %
*
- 50
- 6754.4
- 47.2
- 1131.1
*
- 100
- 9372.1
- 10.9
- 1518.3
*
- 250
- 6185.0
- 40.4
- 1601.9
*
- 350
- 5721.3
- 61.0
- 1451.0
*
- 500
- 5570.7
- 88.8
- 1486.6
Detailed RabbitMQ CPU consumption
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Thus chart shows statistics on RabbitMQ CPU consumption per nodes.
.. image:: rabbitmq_nodes_cpu_consumption_during_rpc_cast_load_test.*
.. list-table:: RabbitMQ nodes CPU consumption during RPC CAST load test
:header-rows: 1
*
- threads
- Master total, %
- Slave 1 total, %
- Slave 2 total, %
- Master sys, %
- Slave 1 sys, %
- Slave 2 sys, %
*
- 50
- 1114.4
- 6.5
- 10.2
- 293.6
- 2.3
- 2.2
*
- 100
- 1502.3
- 7.2
- 8.9
- 428.2
- 2.3
- 2.5
*
- 250
- 1586.1
- 6.8
- 9.0
- 466.0
- 2.1
- 2.7
*
- 350
- 1434.9
- 6.6
- 9.5
- 422.2
- 2.2
- 3.0
*
- 500
- 1470.8
- 6.1
- 9.7
- 438.0
- 2.0
- 3.0
Test Case 3: Notification Throughput Test
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Message processing
~~~~~~~~~~~~~~~~~~
Messages are collected at 2 points: ``sent`` - messages sent by the client
and ``received`` - messages received by the server. Also the number of lost
messages is calculated. Sizes of messages is based on the distribution of
messages collected on the 100-node cloud.
.. image:: notify_message_count.*
.. list-table:: NOTIFY Message count
:header-rows: 1
*
- threads
- sent, msg
- received, msg
- lost, msg
*
- 50
- 652649
- 652649
- 0
*
- 100
- 937191
- 937191
- 0
*
- 250
- 622106
- 622106
- 0
*
- 350
- 583574
- 583574
- 0
*
- 500
- 573813
- 573813
- 0
The throughput, latency and RabbitMQ CPU utilization
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The chart shows the throughput, latency and CPU utilization by RabbitMQ server
depending on number of concurrent threads.
.. image:: notify_throughput_latency_and_rabbitmq_cpu_utilization_depending_on_thread_count.*
.. list-table:: NOTIFY throughput, latency and RabbitMQ CPU utilization depending on thread count
:header-rows: 1
*
- threads
- throughput, msg/sec
- latency, ms
- RabbitMQ CPU consumption, %
*
- 50
- 6425.6
- 51.8
- 1047.9
*
- 100
- 9251.9
- 10.6
- 1434.0
*
- 250
- 6155.4
- 40.5
- 1625.7
*
- 350
- 5774.5
- 60.3
- 1451.2
*
- 500
- 5674.8
- 87.5
- 1460.3
Detailed RabbitMQ CPU consumption
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Thus chart shows statistics on RabbitMQ CPU consumption per nodes.
.. image:: rabbitmq_nodes_cpu_consumption_during_notify_load_test.*
.. list-table:: RabbitMQ nodes CPU consumption during NOTIFY load test
:header-rows: 1
*
- threads
- Master total, %
- Slave 1 total, %
- Slave 2 total, %
- Master sys, %
- Slave 1 sys, %
- Slave 2 sys, %
*
- 50
- 1032.2
- 6.1
- 9.6
- 268.3
- 2.0
- 3.0
*
- 100
- 1418.0
- 6.1
- 9.9
- 400.8
- 2.1
- 2.9
*
- 250
- 1610.3
- 6.4
- 9.1
- 475.5
- 2.0
- 2.8
*
- 350
- 1436.1
- 6.1
- 9.0
- 425.4
- 1.9
- 2.6
*
- 500
- 1443.6
- 6.6
- 10.1
- 430.8
- 2.2
- 2.9
.. references:
.. _message_queue_performance: http://docs.openstack.org/developer/performance-docs/test_plans/mq/plan.html
.. _Oslo.messaging Simulator: https://github.com/openstack/oslo.messaging/blob/master/tools/simulator.py
.. _RabbitMQ HA queues: https://www.rabbitmq.com/ha.html

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 19 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 19 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 25 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 25 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 26 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 20 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 19 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 19 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 19 KiB

View File

@ -0,0 +1,228 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="580"
height="350"
viewBox="0 0 580.00001 350"
id="svg2"
version="1.1"
inkscape:version="0.91 r13725"
sodipodi:docname="topology-cmsm.svg">
<defs
id="defs4">
<marker
inkscape:isstock="true"
style="overflow:visible"
id="marker4607"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow1Mend">
<path
transform="matrix(-0.4,0,0,-0.4,-4,0)"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
id="path4609"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="Arrow1Mend"
orient="auto"
refY="0"
refX="0"
id="Arrow1Mend"
style="overflow:visible"
inkscape:isstock="true"
inkscape:collect="always">
<path
id="path4250"
d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
transform="matrix(-0.4,0,0,-0.4,-4,0)"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="Arrow1Lend"
orient="auto"
refY="0"
refX="0"
id="Arrow1Lend"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path4244"
d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
style="fill:#44aa00;fill-opacity:1;fill-rule:evenodd;stroke:#44aa00;stroke-width:1pt;stroke-opacity:1"
transform="matrix(-0.8,0,0,-0.8,-10,0)"
inkscape:connector-curvature="0" />
</marker>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.98994949"
inkscape:cx="323.60285"
inkscape:cy="205.89558"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1855"
inkscape:window-height="1056"
inkscape:window-x="65"
inkscape:window-y="24"
inkscape:window-maximized="1"
units="px"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-71.73098,-42.362206)">
<path
inkscape:connector-curvature="0"
id="path4605"
d="M 454.66953,266.46352 363.7558,169.48888"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker4607)"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow1Mend)"
d="m 270.72088,266.46352 88.89343,-93.94418"
id="path4235"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<rect
style="fill:#b3ff80;fill-opacity:0.59215689;stroke:#000000;stroke-width:3;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect4140"
width="115.15739"
height="78.286819"
x="112.12693"
y="91.202057" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:23.59143066px;line-height:125%;font-family:'Droid Serif';-inkscape-font-specification:'Droid Serif';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="138.16592"
y="139.84962"
id="text4142"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4144"
x="138.16592"
y="139.84962">Slave</tspan></text>
<rect
y="91.202057"
x="304.05591"
height="78.286819"
width="115.15739"
id="rect4146"
style="fill:#b3ff80;fill-opacity:0.59215689;stroke:#000000;stroke-width:3;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<text
sodipodi:linespacing="125%"
id="text4148"
y="139.84962"
x="324.09491"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:23.59143066px;line-height:125%;font-family:'Droid Serif';-inkscape-font-specification:'Droid Serif';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="139.84962"
x="324.09491"
id="tspan4150"
sodipodi:role="line">Master</tspan></text>
<rect
y="91.202057"
x="495.98492"
height="78.286819"
width="115.15739"
id="rect4152"
style="fill:#b3ff80;fill-opacity:0.59215689;stroke:#000000;stroke-width:3;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<text
sodipodi:linespacing="125%"
id="text4154"
y="139.84962"
x="522.02386"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:23.59143066px;line-height:125%;font-family:'Droid Serif';-inkscape-font-specification:'Droid Serif';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="139.84962"
x="522.02386"
id="tspan4156"
sodipodi:role="line">Slave</tspan></text>
<rect
y="266.46353"
x="211.37442"
height="78.286819"
width="115.15739"
id="rect4158"
style="fill:none;fill-opacity:0.59215686;stroke:#000000;stroke-width:3;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<text
sodipodi:linespacing="125%"
id="text4160"
y="315.11111"
x="237.41341"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:23.59143066px;line-height:125%;font-family:'Droid Serif';-inkscape-font-specification:'Droid Serif';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="315.11111"
x="237.41341"
id="tspan4162"
sodipodi:role="line">client</tspan></text>
<rect
style="fill:none;fill-opacity:0.59215686;stroke:#000000;stroke-width:3;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect4164"
width="115.15739"
height="78.286819"
x="396.73743"
y="266.46353" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:23.59143066px;line-height:125%;font-family:'Droid Serif';-inkscape-font-specification:'Droid Serif';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="418.77643"
y="315.11111"
id="text4166"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4168"
x="418.77643"
y="315.11111">server</tspan></text>
<rect
style="fill:none;fill-opacity:0.59215686;stroke:#808080;stroke-width:1.99999976;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.32704408"
id="rect4225"
width="578"
height="348"
x="72.73098"
y="43.362206" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3,3;stroke-opacity:1;stroke-dashoffset:0"
d="m 227.14286,130.07649 76.42857,0"
id="path4591"
inkscape:connector-curvature="0" />
<path
inkscape:connector-curvature="0"
id="path4595"
d="m 419.14286,130.07649 76.42857,0"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3,3;stroke-opacity:1;stroke-dashoffset:0" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 9.2 KiB

View File

@ -0,0 +1,494 @@
RabbitMQ performance (Client -> Slave-1, Server -> Slave-2), HA queues enabled
------------------------------------------------------------------------------
This report contains results of :ref:`message_queue_performance` execution
with `Oslo.messaging Simulator`_. Simulator client and simulator server
are connected to different slave nodes. `RabbitMQ HA queues`_ are enabled.
.. image:: topology_cs1ss2_ha.*
Simulator is configured with `eventlet` executor running in 10 threads.
The overall number of threads is calculated as multiplication of eventlet
threads, number of processes and number of used nodes.
Test Case 1: RPC CALL Throughput Test
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Message processing
~~~~~~~~~~~~~~~~~~
Messages are collected at 3 points: ``sent`` - messages sent by the client,
``received`` - messages received by the server, ``round-trip`` - replies
received by the client. Also the number of lost messages is calculated.
Sizes of messages is based on the distribution of messages collected on
the 100-node cloud.
.. image:: rpc_call_message_count.*
.. list-table:: RPC CALL Message count
:header-rows: 1
*
- threads
- sent, msg
- received, msg
- round-trip, msg
- lost, msg
*
- 50
- 286874
- 286874
- 286874
- 0
*
- 100
- 335274
- 335274
- 335274
- 0
*
- 250
- 227804
- 227830
- 227804
- 0
*
- 350
- 238445
- 238445
- 238445
- 0
*
- 500
- 168374
- 167229
- 168374
- 0
The throughput, latency and RabbitMQ CPU utilization
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The chart shows the throughput, latency and CPU utilization by RabbitMQ server
depending on number of concurrent threads.
.. image:: rpc_call_throughput_latency_and_rabbitmq_cpu_utilization_depending_on_thread_count.*
.. list-table:: RPC CALL throughput, latency and RabbitMQ CPU utilization depending on thread count
:header-rows: 1
*
- threads
- throughput, msg/sec
- latency, ms
- RabbitMQ CPU, %
*
- 50
- 2814.8
- 15.1
- 1229.4
*
- 100
- 3275.9
- 29.3
- 1546.0
*
- 250
- 2253.5
- 87.7
- 1981.4
*
- 350
- 2358.5
- 146.7
- 1901.1
*
- 500
- 1650.2
- 238.2
- 2260.0
Detailed RabbitMQ CPU consumption
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Thus chart shows statistics on RabbitMQ CPU consumption per nodes.
.. image:: rabbitmq_nodes_cpu_consumption_during_rpc_call_load_test.*
.. list-table:: RabbitMQ nodes CPU consumption during RPC CALL load test
:header-rows: 1
*
- threads
- Master total, %
- Slave 1 total, %
- Slave 2 total, %
- Master sys, %
- Slave 1 sys, %
- Slave 2 sys, %
*
- 50
- 210.9
- 659.8
- 358.8
- 57.5
- 170.0
- 90.0
*
- 100
- 201.4
- 944.7
- 399.9
- 50.9
- 243.7
- 95.8
*
- 250
- 182.7
- 1229.5
- 569.2
- 45.2
- 333.2
- 142.5
*
- 350
- 172.0
- 1297.6
- 431.6
- 44.0
- 367.9
- 107.5
*
- 500
- 157.0
- 1369.8
- 733.1
- 39.6
- 391.3
- 195.2
Test Case 2: RPC CAST Throughput Test
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Message processing
~~~~~~~~~~~~~~~~~~
Messages are collected at 2 points: ``sent`` - messages sent by the client
and ``received`` - messages received by the server. Also the number of lost
messages is calculated. Sizes of messages is based on the distribution of
messages collected on the 100-node cloud.
.. image:: rpc_cast_message_count.*
.. list-table:: RPC CAST Message count
:header-rows: 1
*
- threads
- sent, msg
- received, msg
- lost, msg
*
- 50
- 481721
- 481721
- 0
*
- 100
- 566495
- 566495
- 0
*
- 250
- 557957
- 557957
- 0
*
- 350
- 420309
- 420296
- 13
*
- 500
- 497506
- 497506
- 0
The throughput, latency and RabbitMQ CPU utilization
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The chart shows the throughput, latency and CPU utilization by RabbitMQ server
depending on number of concurrent threads.
.. image:: rpc_cast_throughput_latency_and_rabbitmq_cpu_utilization_depending_on_thread_count.*
.. list-table:: RPC CAST throughput, latency and RabbitMQ CPU utilization depending on thread count
:header-rows: 1
*
- threads
- throughput, msg/sec
- latency, ms
- RabbitMQ CPU consumption, %
*
- 50
- 4760.2
- 5.5
- 896.5
*
- 100
- 5602.8
- 12.3
- 1124.2
*
- 250
- 5520.7
- 12.8
- 1443.0
*
- 350
- 4157.7
- 7.5
- 1448.2
*
- 500
- 4922.2
- 11.8
- 1450.0
Detailed RabbitMQ CPU consumption
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Thus chart shows statistics on RabbitMQ CPU consumption per nodes.
.. image:: rabbitmq_nodes_cpu_consumption_during_rpc_cast_load_test.*
.. list-table:: RabbitMQ nodes CPU consumption during RPC CAST load test
:header-rows: 1
*
- threads
- Master total, %
- Slave 1 total, %
- Slave 2 total, %
- Master sys, %
- Slave 1 sys, %
- Slave 2 sys, %
*
- 50
- 177.5
- 549.1
- 169.9
- 53.8
- 137.0
- 44.9
*
- 100
- 177.8
- 727.4
- 218.9
- 50.3
- 187.1
- 56.1
*
- 250
- 171.7
- 1061.9
- 209.3
- 46.8
- 292.8
- 55.7
*
- 350
- 163.9
- 1074.6
- 209.6
- 43.9
- 302.0
- 57.1
*
- 500
- 148.8
- 1050.9
- 250.3
- 39.8
- 297.5
- 67.8
Test Case 3: Notification Throughput Test
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Message processing
~~~~~~~~~~~~~~~~~~
Messages are collected at 2 points: ``sent`` - messages sent by the client
and ``received`` - messages received by the server. Also the number of lost
messages is calculated. Sizes of messages is based on the distribution of
messages collected on the 100-node cloud.
.. image:: notify_message_count.*
.. list-table:: NOTIFY Message count
:header-rows: 1
*
- threads
- sent, msg
- received, msg
- lost, msg
*
- 50
- 488810
- 488810
- 0
*
- 100
- 481277
- 481277
- 0
*
- 250
- 541306
- 541306
- 0
*
- 350
- 537552
- 537552
- 0
*
- 500
- 483554
- 483554
- 0
The throughput, latency and RabbitMQ CPU utilization
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The chart shows the throughput, latency and CPU utilization by RabbitMQ server
depending on number of concurrent threads.
.. image:: notify_throughput_latency_and_rabbitmq_cpu_utilization_depending_on_thread_count.*
.. list-table:: NOTIFY throughput, latency and RabbitMQ CPU utilization depending on thread count
:header-rows: 1
*
- threads
- throughput, msg/sec
- latency, ms
- RabbitMQ CPU consumption, %
*
- 50
- 4830.8
- 9.7
- 931.2
*
- 100
- 4761.0
- 20.4
- 804.5
*
- 250
- 5356.1
- 39.0
- 1249.1
*
- 350
- 5319.3
- 51.8
- 1298.8
*
- 500
- 4785.1
- 38.1
- 1420.2
Detailed RabbitMQ CPU consumption
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Thus chart shows statistics on RabbitMQ CPU consumption per nodes.
.. image:: rabbitmq_nodes_cpu_consumption_during_notify_load_test.*
.. list-table:: RabbitMQ nodes CPU consumption during NOTIFY load test
:header-rows: 1
*
- threads
- Master total, %
- Slave 1 total, %
- Slave 2 total, %
- Master sys, %
- Slave 1 sys, %
- Slave 2 sys, %
*
- 50
- 155.6
- 542.5
- 233.1
- 44.1
- 138.1
- 61.5
*
- 100
- 154.8
- 441.1
- 208.6
- 43.1
- 111.6
- 53.0
*
- 250
- 152.4
- 848.6
- 248.1
- 40.7
- 226.1
- 61.3
*
- 350
- 150.5
- 902.3
- 246.0
- 40.4
- 240.5
- 62.5
*
- 500
- 156.4
- 1020.9
- 242.9
- 41.9
- 287.9
- 61.0
.. references:
.. _message_queue_performance: http://docs.openstack.org/developer/performance-docs/test_plans/mq/plan.html
.. _Oslo.messaging Simulator: https://github.com/openstack/oslo.messaging/blob/master/tools/simulator.py
.. _RabbitMQ HA queues: https://www.rabbitmq.com/ha.html

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 18 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 19 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 25 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 26 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 25 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 20 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 19 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 18 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 19 KiB

View File

@ -0,0 +1,238 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="580"
height="350"
viewBox="0 0 580.00001 350"
id="svg2"
version="1.1"
inkscape:version="0.91 r13725"
sodipodi:docname="topology_cs1ss2_ha.svg">
<defs
id="defs4">
<marker
inkscape:isstock="true"
style="overflow:visible"
id="marker4607"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow1Mend">
<path
transform="matrix(-0.4,0,0,-0.4,-4,0)"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
id="path4609"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="Arrow1Mend"
orient="auto"
refY="0"
refX="0"
id="Arrow1Mend"
style="overflow:visible"
inkscape:isstock="true"
inkscape:collect="always">
<path
id="path4250"
d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
transform="matrix(-0.4,0,0,-0.4,-4,0)"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="Arrow1Lend"
orient="auto"
refY="0"
refX="0"
id="Arrow1Lend"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path4244"
d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
style="fill:#44aa00;fill-opacity:1;fill-rule:evenodd;stroke:#44aa00;stroke-width:1pt;stroke-opacity:1"
transform="matrix(-0.8,0,0,-0.8,-10,0)"
inkscape:connector-curvature="0" />
</marker>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.98994949"
inkscape:cx="323.60285"
inkscape:cy="205.89558"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1855"
inkscape:window-height="1056"
inkscape:window-x="65"
inkscape:window-y="24"
inkscape:window-maximized="1"
units="px"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-71.73098,-42.362206)">
<path
inkscape:connector-curvature="0"
id="path4605"
d="m 456.93109,266.46352 90.91373,-96.97464"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker4607)"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow1Mend)"
d="M 262.46309,266.46352 173.56966,172.51934"
id="path4235"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<rect
style="fill:#b3ff80;fill-opacity:0.59215689;stroke:#000000;stroke-width:3;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect4140"
width="115.15739"
height="78.286819"
x="112.12693"
y="91.202057" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:23.59143066px;line-height:125%;font-family:'Droid Serif';-inkscape-font-specification:'Droid Serif';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="128.16592"
y="139.84962"
id="text4142"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4144"
x="128.16592"
y="139.84962">Slave-1</tspan></text>
<rect
y="91.202057"
x="304.05591"
height="78.286819"
width="115.15739"
id="rect4146"
style="fill:#b3ff80;fill-opacity:0.59215689;stroke:#000000;stroke-width:3;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<text
sodipodi:linespacing="125%"
id="text4148"
y="139.84962"
x="324.09491"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:23.59143066px;line-height:125%;font-family:'Droid Serif';-inkscape-font-specification:'Droid Serif';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="139.84962"
x="324.09491"
id="tspan4150"
sodipodi:role="line">Master</tspan></text>
<rect
y="91.202057"
x="495.98492"
height="78.286819"
width="115.15739"
id="rect4152"
style="fill:#b3ff80;fill-opacity:0.59215689;stroke:#000000;stroke-width:3;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<text
sodipodi:linespacing="125%"
id="text4154"
y="139.84962"
x="512.02386"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:23.59143066px;line-height:125%;font-family:'Droid Serif';-inkscape-font-specification:'Droid Serif';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="139.84962"
x="512.02386"
id="tspan4156"
sodipodi:role="line">Slave-2</tspan></text>
<rect
y="266.46353"
x="211.37442"
height="78.286819"
width="115.15739"
id="rect4158"
style="fill:none;fill-opacity:0.59215686;stroke:#000000;stroke-width:3;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<text
sodipodi:linespacing="125%"
id="text4160"
y="315.11111"
x="237.41341"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:23.59143066px;line-height:125%;font-family:'Droid Serif';-inkscape-font-specification:'Droid Serif';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="315.11111"
x="237.41341"
id="tspan4162"
sodipodi:role="line">client</tspan></text>
<rect
style="fill:none;fill-opacity:0.59215686;stroke:#000000;stroke-width:3;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect4164"
width="115.15739"
height="78.286819"
x="396.73743"
y="266.46353" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:23.59143066px;line-height:125%;font-family:'Droid Serif';-inkscape-font-specification:'Droid Serif';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="418.77643"
y="315.11111"
id="text4166"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4168"
x="418.77643"
y="315.11111">server</tspan></text>
<rect
style="fill:none;fill-opacity:0.59215686;stroke:#808080;stroke-width:1.99999976;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.32704408"
id="rect4225"
width="578"
height="348"
x="72.73098"
y="43.362206" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
d="m 227.14286,122.07649 76.42857,0"
id="path4591"
inkscape:connector-curvature="0" />
<path
inkscape:connector-curvature="0"
id="path4595"
d="m 419.14286,122.07649 76.42857,0"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path4210"
d="m 227.14286,138.07649 76.42857,0"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
d="m 419.14286,138.07649 76.42857,0"
id="path4212"
inkscape:connector-curvature="0" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 9.8 KiB

View File

@ -0,0 +1,495 @@
RabbitMQ performance (Client -> Slave-1, Server -> Slave-2)
-----------------------------------------------------------
This report contains results of :ref:`message_queue_performance` execution
with `Oslo.messaging Simulator`_. Simulator client and simulator server
are connected to different slave nodes. `RabbitMQ HA queues`_ are enabled.
.. image:: topology_cs1ss2.*
Simulator is configured with `eventlet` executor running in 10 threads.
The overall number of threads is calculated as multiplication of eventlet
threads, number of processes and number of used nodes.
Test Case 1: RPC CALL Throughput Test
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Message processing
~~~~~~~~~~~~~~~~~~
Messages are collected at 3 points: ``sent`` - messages sent by the client,
``received`` - messages received by the server, ``round-trip`` - replies
received by the client. Also the number of lost messages is calculated.
Sizes of messages is based on the distribution of messages collected on
the 100-node cloud.
.. image:: rpc_call_message_count.*
.. list-table:: RPC CALL Message count
:header-rows: 1
*
- threads
- sent, msg
- received, msg
- round-trip, msg
- lost, msg
*
- 50
- 303108
- 303108
- 303108
- 0
*
- 100
- 530183
- 530183
- 530183
- 0
*
- 250
- 590627
- 590627
- 590627
- 0
*
- 350
- 612468
- 612468
- 612468
- 0
*
- 500
- 687218
- 687218
- 687218
- 0
The throughput, latency and RabbitMQ CPU utilization
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The chart shows the throughput, latency and CPU utilization by RabbitMQ server
depending on number of concurrent threads.
.. image:: rpc_call_throughput_latency_and_rabbitmq_cpu_utilization_depending_on_thread_count.*
.. list-table:: RPC CALL throughput, latency and RabbitMQ CPU utilization depending on thread count
:header-rows: 1
*
- threads
- throughput, msg/sec
- latency, ms
- RabbitMQ CPU, %
*
- 50
- 2992.2
- 13.6
- 477.6
*
- 100
- 5219.0
- 16.2
- 1432.7
*
- 250
- 5838.8
- 41.9
- 1969.2
*
- 350
- 6057.5
- 56.9
- 2037.3
*
- 500
- 6798.0
- 72.6
- 2216.4
Detailed RabbitMQ CPU consumption
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Thus chart shows statistics on RabbitMQ CPU consumption per nodes.
.. image:: rabbitmq_nodes_cpu_consumption_during_rpc_call_load_test.*
.. list-table:: RabbitMQ nodes CPU consumption during RPC CALL load test
:header-rows: 1
*
- threads
- Master total, %
- Slave 1 total, %
- Slave 2 total, %
- Master sys, %
- Slave 1 sys, %
- Slave 2 sys, %
*
- 50
- 59.1
- 262.2
- 156.3
- 16.7
- 75.1
- 47.2
*
- 100
- 76.6
- 1050.6
- 305.5
- 20.8
- 288.4
- 83.2
*
- 250
- 78.0
- 1422.6
- 468.7
- 21.2
- 417.0
- 122.8
*
- 350
- 78.0
- 1462.2
- 497.1
- 20.7
- 424.5
- 127.9
*
- 500
- 80.5
- 1509.7
- 626.1
- 21.4
- 429.2
- 161.9
Test Case 2: RPC CAST Throughput Test
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Message processing
~~~~~~~~~~~~~~~~~~
Messages are collected at 2 points: ``sent`` - messages sent by the client
and ``received`` - messages received by the server. Also the number of lost
messages is calculated. Sizes of messages is based on the distribution of
messages collected on the 100-node cloud.
.. image:: rpc_cast_message_count.*
.. list-table:: RPC CAST Message count
:header-rows: 1
*
- threads
- sent, msg
- received, msg
- lost, msg
*
- 50
- 740756
- 740756
- 0
*
- 100
- 981647
- 981647
- 0
*
- 250
- 1265226
- 1265226
- 0
*
- 350
- 1362716
- 1362716
- 0
*
- 500
- 1487540
- 1487540
- 0
The throughput, latency and RabbitMQ CPU utilization
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The chart shows the throughput, latency and CPU utilization by RabbitMQ server
depending on number of concurrent threads.
.. image:: rpc_cast_throughput_latency_and_rabbitmq_cpu_utilization_depending_on_thread_count.*
.. list-table:: RPC CAST throughput, latency and RabbitMQ CPU utilization depending on thread count
:header-rows: 1
*
- threads
- throughput, msg/sec
- latency, ms
- RabbitMQ CPU consumption, %
*
- 50
- 7293.3
- 65.0
- 778.3
*
- 100
- 9691.4
- 8.3
- 1530.6
*
- 250
- 12510.6
- 16.0
- 1728.8
*
- 350
- 13478.8
- 21.3
- 1835.4
*
- 500
- 14713.0
- 23.8
- 1712.8
Detailed RabbitMQ CPU consumption
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Thus chart shows statistics on RabbitMQ CPU consumption per nodes.
.. image:: rabbitmq_nodes_cpu_consumption_during_rpc_cast_load_test.*
.. list-table:: RabbitMQ nodes CPU consumption during RPC CAST load test
:header-rows: 1
*
- threads
- Master total, %
- Slave 1 total, %
- Slave 2 total, %
- Master sys, %
- Slave 1 sys, %
- Slave 2 sys, %
*
- 50
- 110.3
- 552.9
- 115.0
- 31.9
- 145.8
- 36.5
*
- 100
- 101.4
- 1268.7
- 160.4
- 25.6
- 367.8
- 50.1
*
- 250
- 114.7
- 1377.1
- 237.0
- 29.1
- 431.5
- 69.6
*
- 350
- 119.3
- 1438.2
- 277.9
- 32.3
- 447.6
- 80.9
*
- 500
- 143.1
- 1286.0
- 283.7
- 39.5
- 397.7
- 82.5
Test Case 3: Notification Throughput Test
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Message processing
~~~~~~~~~~~~~~~~~~
Messages are collected at 2 points: ``sent`` - messages sent by the client
and ``received`` - messages received by the server. Also the number of lost
messages is calculated. Sizes of messages is based on the distribution of
messages collected on the 100-node cloud.
.. image:: notify_message_count.*
.. list-table:: NOTIFY Message count
:header-rows: 1
*
- threads
- sent, msg
- received, msg
- lost, msg
*
- 50
- 704253
- 704253
- 0
*
- 100
- 965920
- 965920
- 0
*
- 250
- 1228602
- 1228602
- 0
*
- 350
- 1366766
- 1366766
- 0
*
- 500
- 1453842
- 1453842
- 0
The throughput, latency and RabbitMQ CPU utilization
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The chart shows the throughput, latency and CPU utilization by RabbitMQ server
depending on number of concurrent threads.
.. image:: notify_throughput_latency_and_rabbitmq_cpu_utilization_depending_on_thread_count.*
.. list-table:: NOTIFY throughput, latency and RabbitMQ CPU utilization depending on thread count
:header-rows: 1
*
- threads
- throughput, msg/sec
- latency, ms
- RabbitMQ CPU consumption, %
*
- 50
- 6932.9
- 5.0
- 750.1
*
- 100
- 9532.6
- 8.1
- 1548.2
*
- 250
- 12147.7
- 15.7
- 1773.8
*
- 350
- 13517.9
- 19.8
- 1768.2
*
- 500
- 14378.9
- 21.7
- 1799.2
Detailed RabbitMQ CPU consumption
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Thus chart shows statistics on RabbitMQ CPU consumption per nodes.
.. image:: rabbitmq_nodes_cpu_consumption_during_notify_load_test.*
.. list-table:: RabbitMQ nodes CPU consumption during NOTIFY load test
:header-rows: 1
*
- threads
- Master total, %
- Slave 1 total, %
- Slave 2 total, %
- Master sys, %
- Slave 1 sys, %
- Slave 2 sys, %
*
- 50
- 99.7
- 545.0
- 105.5
- 27.8
- 144.0
- 33.9
*
- 100
- 102.9
- 1268.6
- 176.7
- 29.1
- 366.7
- 55.0
*
- 250
- 109.0
- 1401.5
- 263.2
- 30.4
- 439.0
- 79.0
*
- 350
- 124.2
- 1334.0
- 309.9
- 34.3
- 416.0
- 89.1
*
- 500
- 136.7
- 1330.6
- 332.0
- 37.6
- 411.1
- 93.3
.. references:
.. _Oslo.messaging Simulator: https://github.com/openstack/oslo.messaging/blob/master/tools/simulator.py
.. _RabbitMQ HA queues: https://www.rabbitmq.com/ha.html

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 20 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 20 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 26 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 26 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 26 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 20 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 19 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 20 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 20 KiB

View File

@ -0,0 +1,228 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="580"
height="350"
viewBox="0 0 580.00001 350"
id="svg2"
version="1.1"
inkscape:version="0.91 r13725"
sodipodi:docname="topology_cs1ss2.svg">
<defs
id="defs4">
<marker
inkscape:isstock="true"
style="overflow:visible"
id="marker4607"
refX="0"
refY="0"
orient="auto"
inkscape:stockid="Arrow1Mend">
<path
transform="matrix(-0.4,0,0,-0.4,-4,0)"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
id="path4609"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="Arrow1Mend"
orient="auto"
refY="0"
refX="0"
id="Arrow1Mend"
style="overflow:visible"
inkscape:isstock="true"
inkscape:collect="always">
<path
id="path4250"
d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1"
transform="matrix(-0.4,0,0,-0.4,-4,0)"
inkscape:connector-curvature="0" />
</marker>
<marker
inkscape:stockid="Arrow1Lend"
orient="auto"
refY="0"
refX="0"
id="Arrow1Lend"
style="overflow:visible"
inkscape:isstock="true">
<path
id="path4244"
d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
style="fill:#44aa00;fill-opacity:1;fill-rule:evenodd;stroke:#44aa00;stroke-width:1pt;stroke-opacity:1"
transform="matrix(-0.8,0,0,-0.8,-10,0)"
inkscape:connector-curvature="0" />
</marker>
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.98994949"
inkscape:cx="323.60285"
inkscape:cy="205.89558"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1855"
inkscape:window-height="1056"
inkscape:window-x="65"
inkscape:window-y="24"
inkscape:window-maximized="1"
units="px"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-71.73098,-42.362206)">
<path
inkscape:connector-curvature="0"
id="path4605"
d="m 456.93109,266.46352 90.91373,-96.97464"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker4607)"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow1Mend)"
d="M 262.46309,266.46352 173.56966,172.51934"
id="path4235"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<rect
style="fill:#b3ff80;fill-opacity:0.59215689;stroke:#000000;stroke-width:3;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect4140"
width="115.15739"
height="78.286819"
x="112.12693"
y="91.202057" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:23.59143066px;line-height:125%;font-family:'Droid Serif';-inkscape-font-specification:'Droid Serif';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="128.16592"
y="139.84962"
id="text4142"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4144"
x="128.16592"
y="139.84962">Slave-1</tspan></text>
<rect
y="91.202057"
x="304.05591"
height="78.286819"
width="115.15739"
id="rect4146"
style="fill:#b3ff80;fill-opacity:0.59215689;stroke:#000000;stroke-width:3;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<text
sodipodi:linespacing="125%"
id="text4148"
y="139.84962"
x="324.09491"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:23.59143066px;line-height:125%;font-family:'Droid Serif';-inkscape-font-specification:'Droid Serif';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="139.84962"
x="324.09491"
id="tspan4150"
sodipodi:role="line">Master</tspan></text>
<rect
y="91.202057"
x="495.98492"
height="78.286819"
width="115.15739"
id="rect4152"
style="fill:#b3ff80;fill-opacity:0.59215689;stroke:#000000;stroke-width:3;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<text
sodipodi:linespacing="125%"
id="text4154"
y="139.84962"
x="512.02386"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:23.59143066px;line-height:125%;font-family:'Droid Serif';-inkscape-font-specification:'Droid Serif';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="139.84962"
x="512.02386"
id="tspan4156"
sodipodi:role="line">Slave-2</tspan></text>
<rect
y="266.46353"
x="211.37442"
height="78.286819"
width="115.15739"
id="rect4158"
style="fill:none;fill-opacity:0.59215686;stroke:#000000;stroke-width:3;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
<text
sodipodi:linespacing="125%"
id="text4160"
y="315.11111"
x="237.41341"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:23.59143066px;line-height:125%;font-family:'Droid Serif';-inkscape-font-specification:'Droid Serif';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="315.11111"
x="237.41341"
id="tspan4162"
sodipodi:role="line">client</tspan></text>
<rect
style="fill:none;fill-opacity:0.59215686;stroke:#000000;stroke-width:3;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect4164"
width="115.15739"
height="78.286819"
x="396.73743"
y="266.46353" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:23.59143066px;line-height:125%;font-family:'Droid Serif';-inkscape-font-specification:'Droid Serif';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="418.77643"
y="315.11111"
id="text4166"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4168"
x="418.77643"
y="315.11111">server</tspan></text>
<rect
style="fill:none;fill-opacity:0.59215686;stroke:#808080;stroke-width:1.99999976;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.32704408"
id="rect4225"
width="578"
height="348"
x="72.73098"
y="43.362206" />
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3,3;stroke-dashoffset:0;stroke-opacity:1"
d="m 227.14286,130.07649 76.42857,0"
id="path4591"
inkscape:connector-curvature="0" />
<path
inkscape:connector-curvature="0"
id="path4595"
d="m 419.14286,130.07649 76.42857,0"
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:3,3;stroke-dashoffset:0;stroke-opacity:1" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 9.2 KiB

View File

@ -0,0 +1,70 @@
.. raw:: pdf
PageBreak oneColumn
.. _mq_ha_rabbit_report:
===========================
RabbitMQ Performance Report
===========================
Environment description
^^^^^^^^^^^^^^^^^^^^^^^
This report is generated for :ref:`message_queue_performance` test plan with
`Oslo.messaging Simulator`_ tool. The data is collected in
:ref:`intel_mirantis_performance_lab`.
Reports
^^^^^^^
.. toctree::
:maxdepth: 1
cmsm/index
cs1ss2/index
cmsm-ha/index
cs1ss2-ha/index
High-level performance overview
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The following table shows top throughput achieved on different topologies
with RabbitMQ HA queues enabled and disabled.
.. list-table::
:header-rows: 1
*
- Topology
- CALL, msg/sec
- CAST, msg/sec
- NOTIFY, msg/sec
*
- Client -> Master, Server -> Master
- 5100
- 9300
- 9200
*
- Client -> Slave-1, Server -> Slave-2
- 6800
- 14700
- 14300
*
- Client -> Master, Server -> Master (HA)
- 2400
- 6600
- 6900
*
- Client -> Slave-1, Server -> Slave-2 (HA)
- 3200
- 5600
- 5300
.. references:
.. _Oslo.messaging Simulator: https://github.com/openstack/oslo.messaging/blob/master/tools/simulator.py