From 42a3c5e1ce13e9a1d877d4e33ccaa8690595a7a1 Mon Sep 17 00:00:00 2001 From: Ilya Shakhat Date: Fri, 1 Apr 2016 17:13:26 +0300 Subject: [PATCH] Add ZeroMQ performance report Change-Id: I292ace5946e1ac3fcd079a7201f5e952c53deb56 --- doc/source/test_results/index.rst | 2 +- doc/source/test_results/mq/index.rst | 13 + doc/source/test_results/mq/zeromq/index.rst | 305 ++++++++++++++++++ .../mq/zeromq/rpc_call_message_count.svg | 4 + ..._and_latency_depending_on_thread_count.svg | 4 + .../mq/zeromq/rpc_cast_message_count.svg | 4 + ..._and_latency_depending_on_thread_count.svg | 4 + 7 files changed, 335 insertions(+), 1 deletion(-) create mode 100644 doc/source/test_results/mq/index.rst create mode 100644 doc/source/test_results/mq/zeromq/index.rst create mode 100644 doc/source/test_results/mq/zeromq/rpc_call_message_count.svg create mode 100644 doc/source/test_results/mq/zeromq/rpc_call_throughput_and_latency_depending_on_thread_count.svg create mode 100644 doc/source/test_results/mq/zeromq/rpc_cast_message_count.svg create mode 100644 doc/source/test_results/mq/zeromq/rpc_cast_throughput_and_latency_depending_on_thread_count.svg diff --git a/doc/source/test_results/index.rst b/doc/source/test_results/index.rst index 7dfb10a..9cc7a64 100644 --- a/doc/source/test_results/index.rst +++ b/doc/source/test_results/index.rst @@ -9,7 +9,7 @@ Test Results .. toctree:: :maxdepth: 2 - mq/rabbitmq/index + mq/index mq_ha/index container_repositories/index db/mysql/index diff --git a/doc/source/test_results/mq/index.rst b/doc/source/test_results/mq/index.rst new file mode 100644 index 0000000..cf6ad95 --- /dev/null +++ b/doc/source/test_results/mq/index.rst @@ -0,0 +1,13 @@ +.. raw:: pdf + + PageBreak oneColumn + +================================= +Message Queue Performance Reports +================================= + +.. toctree:: + :maxdepth: 3 + + rabbitmq/index + zeromq/index diff --git a/doc/source/test_results/mq/zeromq/index.rst b/doc/source/test_results/mq/zeromq/index.rst new file mode 100644 index 0000000..0f0b939 --- /dev/null +++ b/doc/source/test_results/mq/zeromq/index.rst @@ -0,0 +1,305 @@ +ZeroMQ performance +------------------ + +This report contains results of :ref:`message_queue_performance` execution +with `Oslo.messaging Simulator`_. + +Simulator is configured with `eventlet` executor running in 10 threads. +The overall number of threads is calculated as multiplication of eventlet +threads and number of processes. All processes are executed on the same +physical host. + + +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`. + +Software +~~~~~~~~ + ++-----------------+--------------------------------------------+ +| Parameter | Value | ++-----------------+--------------------------------------------+ +| OS | Ubuntu 14.04.3 | ++-----------------+--------------------------------------------+ +| oslo.messaging | 4.5.1 with ZMQ driver | ++-----------------+--------------------------------------------+ +| Redis | 2.8.4 | ++-----------------+--------------------------------------------+ + + +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 + * + - 10 + - 243452 + - 243452 + - 243452 + - 0 + * + - 20 + - 493979 + - 493979 + - 493979 + - 0 + * + - 50 + - 1182805 + - 1182805 + - 1182805 + - 0 + * + - 70 + - 1461209 + - 1461209 + - 1461209 + - 0 + * + - 100 + - 1917207 + - 1917207 + - 1917207 + - 0 + * + - 120 + - 2026038 + - 2026038 + - 2026038 + - 0 + * + - 150 + - 2462634 + - 2462634 + - 2462634 + - 0 + * + - 170 + - 2638116 + - 2638116 + - 2638116 + - 0 + * + - 200 + - 2801776 + - 2801776 + - 2801776 + - 0 + + + +The throughput and latency +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The chart shows the throughput, latency and CPU utilization by RabbitMQ server +depending on number of concurrent threads. + +.. image:: rpc_call_throughput_and_latency_depending_on_thread_count.* + + +.. list-table:: RPC CALL throughput and latency depending on thread count + :header-rows: 1 + + * + - threads + - throughput, msg/sec + - latency, ms + * + - 10 + - 2407.3 + - 3.8 + * + - 20 + - 4884.5 + - 3.8 + * + - 50 + - 11695.7 + - 3.9 + * + - 70 + - 14449.7 + - 4.5 + * + - 100 + - 18955.8 + - 4.9 + * + - 120 + - 20022.2 + - 5.5 + * + - 150 + - 24335.8 + - 5.7 + * + - 170 + - 26069.3 + - 6.0 + * + - 200 + - 27680.0 + - 6.6 + + + +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 + * + - 10 + - 194036 + - 194036 + - 0 + * + - 20 + - 387997 + - 387997 + - 0 + * + - 50 + - 971124 + - 971124 + - 0 + * + - 70 + - 1360370 + - 1360370 + - 0 + * + - 100 + - 1938276 + - 1938276 + - 0 + * + - 120 + - 2303417 + - 2303417 + - 0 + * + - 150 + - 2869428 + - 2869428 + - 0 + * + - 170 + - 3233841 + - 3233841 + - 0 + * + - 200 + - 2681203 + - 2681203 + - 0 + + + +The throughput and latency +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The chart shows the throughput, latency and CPU utilization by RabbitMQ server +depending on number of concurrent threads. + +.. image:: rpc_cast_throughput_and_latency_depending_on_thread_count.* + + +.. list-table:: RPC CAST throughput and latency depending on thread count + :header-rows: 1 + + * + - threads + - throughput, msg/sec + - latency, ms + * + - 10 + - 1920.0 + - 0.7 + * + - 20 + - 3839.8 + - 0.7 + * + - 50 + - 9610.8 + - 0.7 + * + - 70 + - 13463.1 + - 0.8 + * + - 100 + - 19181.4 + - 1.0 + * + - 120 + - 22789.0 + - 1.2 + * + - 150 + - 28388.6 + - 1.4 + * + - 170 + - 31993.5 + - 1.5 + * + - 200 + - 26481.6 + - 385.8 + + +Test Case 3: Notification Throughput Test +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. note:: + + The execution of this test case was skipped due to unstable work of + oslo.messaging simulator with ZMQ driver. + + +.. references: + +.. _Oslo.messaging Simulator: https://github.com/openstack/oslo.messaging/blob/master/tools/simulator.py diff --git a/doc/source/test_results/mq/zeromq/rpc_call_message_count.svg b/doc/source/test_results/mq/zeromq/rpc_call_message_count.svg new file mode 100644 index 0000000..6d5e1ac --- /dev/null +++ b/doc/source/test_results/mq/zeromq/rpc_call_message_count.svg @@ -0,0 +1,4 @@ + +Pygal0.00.0200000.0200000.0400000.0400000.0600000.0600000.0800000.0800000.01000000.01000000.01200000.01200000.01400000.01400000.01600000.01600000.01800000.01800000.02000000.02000000.02200000.02200000.02400000.02400000.02600000.02600000.02800000.02800000.020.020.040.040.060.060.080.080.0100.0100.0120.0120.0140.0140.0160.0160.0180.0180.0200.0200.0threads10: 24345213.3846153846420.79580638520: 49397948.6072874494380.47208266650: 1182805154.275303644269.60168021770: 1461209224.720647773224.790997224100: 1917207330.388663968151.395565321120: 2026038400.834008097133.878606366150: 2462634506.50202429163.6060350237170: 2638116576.94736842135.3612243421200: 2801776682.6153846159.0192307692310: 24345213.3846153846420.79580638520: 49397948.6072874494380.47208266650: 1182805154.275303644269.60168021770: 1461209224.720647773224.790997224100: 1917207330.388663968151.395565321120: 2026038400.834008097133.878606366150: 2462634506.50202429163.6060350237170: 2638116576.94736842135.3612243421200: 2801776682.6153846159.0192307692310: 24345213.3846153846420.79580638520: 49397948.6072874494380.47208266650: 1182805154.275303644269.60168021770: 1461209224.720647773224.790997224100: 1917207330.388663968151.395565321120: 2026038400.834008097133.878606366150: 2462634506.50202429163.6060350237170: 2638116576.94736842135.3612243421200: 2801776682.6153846159.0192307692310: 013.3846153846459.98076923120: 048.6072874494459.98076923150: 0154.275303644459.98076923170: 0224.720647773459.980769231100: 0330.388663968459.980769231120: 0400.834008097459.980769231150: 0506.502024291459.980769231170: 0576.947368421459.980769231200: 0682.615384615459.980769231sent, msground-trip, msgreceived, msglost, msg \ No newline at end of file diff --git a/doc/source/test_results/mq/zeromq/rpc_call_throughput_and_latency_depending_on_thread_count.svg b/doc/source/test_results/mq/zeromq/rpc_call_throughput_and_latency_depending_on_thread_count.svg new file mode 100644 index 0000000..0eba143 --- /dev/null +++ b/doc/source/test_results/mq/zeromq/rpc_call_throughput_and_latency_depending_on_thread_count.svg @@ -0,0 +1,4 @@ + +Pygal0.00.02000.02000.04000.04000.06000.06000.08000.08000.010000.010000.012000.012000.014000.014000.016000.016000.018000.018000.020000.020000.022000.022000.024000.024000.026000.026000.020.020.040.040.060.060.080.080.0100.0100.0120.0120.0140.0140.0160.0160.0180.0180.0200.0200.0threads10: 2407.3124535313.6153846154420.76087021420: 4884.5329249.4453441296380.4020308850: 11695.6867886156.935222672269.43481242770: 14449.6800048228.5951417224.566795533100: 18955.8100461336.085020243151.152991306120: 20022.1848791407.744939271133.77962824150: 24335.8346458515.23481781463.5017098099170: 26069.3417322586.89473684235.2594379047200: 27679.9623356694.3846153859.0192307692310: 3.799764938413.6153846154459.91886351620: 3.7541740548449.4453441296459.91960628250: 3.93688720581156.935222672459.91662952270: 4.53433008805228.5951417459.906895992100: 4.94677817499336.085020243459.900176394120: 5.51446423556407.744939271459.890927661150: 5.65762572641515.234817814459.888595276170: 5.97317337283586.894736842459.883454378200: 6.60123220577694.384615385459.873222053throughput, msg/seclatency, ms \ No newline at end of file diff --git a/doc/source/test_results/mq/zeromq/rpc_cast_message_count.svg b/doc/source/test_results/mq/zeromq/rpc_cast_message_count.svg new file mode 100644 index 0000000..01f4ff7 --- /dev/null +++ b/doc/source/test_results/mq/zeromq/rpc_cast_message_count.svg @@ -0,0 +1,4 @@ + +Pygal0.00.0400000.0400000.0800000.0800000.01200000.01200000.01600000.01600000.02000000.02000000.02400000.02400000.02800000.02800000.03200000.03200000.020.020.040.040.060.060.080.080.0100.0100.0120.0120.0140.0140.0160.0160.0180.0180.0200.0200.0threads10: 19403613.3846153846432.92230436620: 38799748.6072874494405.87429830750: 971124154.275303644324.55680340370: 1360370224.720647773270.276158498100: 1938276330.388663968189.686735936120: 2303417400.834008097138.767551253150: 2869428506.50202429159.8368953098170: 3233841576.9473684219.01923076923200: 2681203682.61538461586.085011892110: 013.3846153846459.98076923120: 048.6072874494459.98076923150: 0154.275303644459.98076923170: 0224.720647773459.980769231100: 0330.388663968459.980769231120: 0400.834008097459.980769231150: 0506.502024291459.980769231170: 0576.947368421459.980769231200: 0682.615384615459.98076923110: 19403613.3846153846432.92230436620: 38799748.6072874494405.87429830750: 971124154.275303644324.55680340370: 1360370224.720647773270.276158498100: 1938276330.388663968189.686735936120: 2303417400.834008097138.767551253150: 2869428506.50202429159.8368953098170: 3233841576.9473684219.01923076923200: 2681203682.61538461586.0850118921sent, msglost, msgreceived, msg \ No newline at end of file diff --git a/doc/source/test_results/mq/zeromq/rpc_cast_throughput_and_latency_depending_on_thread_count.svg b/doc/source/test_results/mq/zeromq/rpc_cast_throughput_and_latency_depending_on_thread_count.svg new file mode 100644 index 0000000..244a983 --- /dev/null +++ b/doc/source/test_results/mq/zeromq/rpc_cast_throughput_and_latency_depending_on_thread_count.svg @@ -0,0 +1,4 @@ + +Pygal0.00.02000.02000.04000.04000.06000.06000.08000.08000.010000.010000.012000.012000.014000.014000.016000.016000.018000.018000.020000.020000.022000.022000.024000.024000.026000.026000.028000.028000.030000.030000.020.020.040.040.060.060.080.080.0100.0100.0120.0120.0140.0140.0160.0160.0180.0180.0200.0200.0threads10: 1920.0236306313.6153846154432.91721978820: 3839.8448326849.4453441296405.85652366250: 9610.80335221156.935222672324.51240959370: 13463.0648302228.5951417270.21314613100: 19181.3731972336.085020243189.611158346120: 22788.9799475407.744939271138.760407294150: 28388.5519057515.23481781459.8320596781170: 31993.4682693586.8947368429.01923076923200: 26481.6266947694.38461538586.710981326710: 0.74738825738113.6153846154459.97023447620: 0.72617678626549.4453441296459.9705334650: 0.746098382535156.935222672459.97025265770: 0.797816612356228.5951417459.969523666100: 0.996213447644336.085020243459.966727179120: 1.18857830177407.744939271459.964015714150: 1.35416562418515.234817814459.961681691170: 1.48249245207586.894736842459.959872869200: 385.831095309694.384615385454.542315892throughput, msg/seclatency, ms \ No newline at end of file