Difference between revisions of "Zaqar/Performance/PubSub/Redis"
m (→Senario 2 (Write-Heavy)) |
m (→Senario 1 (Read-Heavy)) |
||
Line 20: | Line 20: | ||
=== Senario 1 (Read-Heavy)=== | === Senario 1 (Read-Heavy)=== | ||
− | In these tests, producers were held at 50 while the number of observer clients was steadily increased | + | In these tests, producers were held at 50 while the number of observer clients was steadily increased. The X axis denotes the total number of observers and producers. For some use cases that Zaqar targets, the number of observers polling the API far exceeds the number of messages being posted at any given time. |
==== Mean Latency ==== | ==== Mean Latency ==== | ||
Line 51: | Line 51: | ||
[[File:Zaqar-juno-redis-pubsub-latency-max-increasing-obs-50-prod.png]] | [[File:Zaqar-juno-redis-pubsub-latency-max-increasing-obs-50-prod.png]] | ||
− | |||
=== Senario 2 (Write-Heavy)=== | === Senario 2 (Write-Heavy)=== |
Revision as of 12:59, 16 September 2014
Contents
Overview =
These tests examined the pub-sub performance of the Redis driver (Juno release).
Systems
TODO
Configuration 1
In these tests, various amounts of load was applied to the following configuration:
- 1x4 load balancer
- 1x20 web head (WSGI server)
- 1x1 redis (message store)
- 3x mongo replica set (pooling catalog)
Messages were small in these tests (only about 80 characters, larger message sizes still need to be tested). Each level of load was executed for 5 minutes, and then the samples were used to calculate the following statistics.
Senario 1 (Read-Heavy)
In these tests, producers were held at 50 while the number of observer clients was steadily increased. The X axis denotes the total number of observers and producers. For some use cases that Zaqar targets, the number of observers polling the API far exceeds the number of messages being posted at any given time.
Mean Latency
The Y-axis denotes mean latency in milliseconds.
Combined Throughput
The Y-axis denotes the combined throughput for all clients in requests/sec.
Standard Deviation
The Y-axis denotes the stdev for per-request latency (ms).
99th Percentile
The Y-axis denotes the per-request latency for 99% of client requests. This shows the latency for most of the requests.
Maximum Latency
The Y-axis represents the maximum latency experienced by any client during a given run. To view the duration for most of the requests, see the 99th percentile graph, above. The spikes are likely due to Redis's snapshotting feature (the default settings were used for redis-server in these tests).
Senario 2 (Write-Heavy)
In these tests, observers were held at 50 while the number of producer clients was steadily increased. The X-axis shows the total number of clients (producers + observers). Each level of load was executed for 5 minutes, after which the samples were used to calculate the following statistics.
Mean Latency
The Y-axis denotes mean latency in milliseconds.
Combined Throughput
The Y-axis denotes the combined throughput for all clients in requests/sec.
Standard Deviation
The Y-axis denotes the stdev for per-request latency (ms).
99th Percentile
The Y-axis denotes the per-request latency for 99% of client requests. This shows the latency for most of the requests.
Maximum Latency
The Y-axis represents the maximum latency experienced by any client during a given run. To view the duration for most of the requests, see the 99th percentile graph, above. The spikes are likely due to Redis's snapshotting feature (the default settings were used for redis-server in these tests).