6.14.1.2.2. RabbitMQ performance (Client -> Slave-1, Server -> Slave-2)

This report contains results of Message Queue Performance execution with Oslo.messaging Simulator. Simulator client and simulator server are connected to different slave nodes. RabbitMQ HA queues are enabled.

../../../../_images/topology_cs1ss2.svg

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.

6.14.1.2.2.1. Test Case 1: RPC CALL Throughput Test

6.14.1.2.2.1.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_count3.svg
RPC CALL Message count
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

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

../../../../_images/rpc_call_throughput_latency_and_rabbitmq_cpu_utilization_depending_on_thread_count3.svg
RPC CALL throughput, latency and RabbitMQ CPU utilization depending on thread count
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

6.14.1.2.2.1.3. Detailed RabbitMQ CPU consumption

Thus chart shows statistics on RabbitMQ CPU consumption per nodes.

../../../../_images/rabbitmq_nodes_cpu_consumption_during_rpc_call_load_test3.svg
RabbitMQ nodes CPU consumption during RPC CALL load test
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

6.14.1.2.2.2. Test Case 2: RPC CAST Throughput Test

6.14.1.2.2.2.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_count3.svg
RPC CAST Message count
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

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

../../../../_images/rpc_cast_throughput_latency_and_rabbitmq_cpu_utilization_depending_on_thread_count3.svg
RPC CAST throughput, latency and RabbitMQ CPU utilization depending on thread count
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

6.14.1.2.2.2.3. Detailed RabbitMQ CPU consumption

Thus chart shows statistics on RabbitMQ CPU consumption per nodes.

../../../../_images/rabbitmq_nodes_cpu_consumption_during_rpc_cast_load_test3.svg
RabbitMQ nodes CPU consumption during RPC CAST load test
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

6.14.1.2.2.3. Test Case 3: Notification Throughput Test

6.14.1.2.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/notify_message_count3.svg
NOTIFY Message count
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

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

../../../../_images/notify_throughput_latency_and_rabbitmq_cpu_utilization_depending_on_thread_count3.svg
NOTIFY throughput, latency and RabbitMQ CPU utilization depending on thread count
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

6.14.1.2.2.3.3. Detailed RabbitMQ CPU consumption

Thus chart shows statistics on RabbitMQ CPU consumption per nodes.

../../../../_images/rabbitmq_nodes_cpu_consumption_during_notify_load_test3.svg
RabbitMQ nodes CPU consumption during NOTIFY load test
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