6.14.2. ZeroMQ performance

This report contains results of 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.

6.14.2.1. Environment description

This report is generated for Message Queue Performance test plan with Oslo.messaging Simulator tool. The data is collected in Intel-Mirantis Performance-Team Lab #1.

6.14.2.1.1. Software

Parameter Value
OS Ubuntu 14.04.3
oslo.messaging 4.5.1 with ZMQ driver
Redis 2.8.4

6.14.2.2. Test Case 1: RPC CALL Throughput Test

6.14.2.2.1. 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.

../../../_images/rpc_call_message_count4.svg
RPC CALL Message count
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

6.14.2.2.2. The throughput and latency

The chart shows the throughput, latency and CPU utilization by RabbitMQ server depending on number of concurrent threads.

../../../_images/rpc_call_throughput_and_latency_depending_on_thread_count.svg
RPC CALL throughput and latency depending on thread count
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

6.14.2.3. Test Case 2: RPC CAST Throughput Test

6.14.2.3.1. 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.

../../../_images/rpc_cast_message_count4.svg
RPC CAST Message count
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

6.14.2.3.2. The throughput and latency

The chart shows the throughput, latency and CPU utilization by RabbitMQ server depending on number of concurrent threads.

../../../_images/rpc_cast_throughput_and_latency_depending_on_thread_count.svg
RPC CAST throughput and latency depending on thread count
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

6.14.2.4. 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.