mirror of
https://github.com/dragonflydb/dragonfly
synced 2024-11-21 15:11:20 +00:00
chore(doc): add dragonfly/memcached benchmark to README
Signed-off-by: Roman Gershman <roman@dragonflydb.io>
This commit is contained in:
parent
d1d64eb014
commit
2d9370c6b2
27
README.md
27
README.md
@ -20,7 +20,7 @@ Dragonfly's core properties make it a cost-effective, high-performing, and easy-
|
||||
|
||||
## Benchmarks
|
||||
|
||||
<img src="docs/throughput.svg" width="80%" border="0"/>
|
||||
<img src="http://assets.dragonflydb.io/repo-assets/aws-throughput.svg" width="80%" border="0"/>
|
||||
|
||||
Dragonfly is crossing 3.8M QPS on c6gn.16xlarge reaching x25 increase in throughput compared to Redis.
|
||||
|
||||
@ -42,13 +42,36 @@ Dragonfly is crossing 3.8M QPS on c6gn.16xlarge reaching x25 increase in through
|
||||
|
||||
When running in pipeline mode `--pipeline=30`, Dragonfly reaches **10M qps** for SET and **15M qps** for GET operations.
|
||||
|
||||
### Memcached / Dragonfly
|
||||
|
||||
We compared memcached with Dragonfly on `c6gn.16xlarge` instance on AWS.
|
||||
As you can see below Dragonfly dominates memcached for both write and read workloads
|
||||
in terms of throughput with a comparable latency. For write workloads, Dragonfly has also better latency, due to contention on the [write path in memcached](docs/memcached_benchmark.md).
|
||||
|
||||
#### SET benchmark
|
||||
|
||||
| Server | QPS(thousands qps) | latency 99% | 99.9% |
|
||||
|:---------:|:------------------:|:-----------:|:-------:|
|
||||
| Dragonfly | 🟩 3844 |🟩 0.9ms | 🟩 2.4ms |
|
||||
| Memcached | 806 | 1.6ms | 3.2ms |
|
||||
|
||||
#### GET benchmark
|
||||
|
||||
| Server | QPS(thousands qps) | latency 99% | 99.9% |
|
||||
|-----------|:------------------:|:-----------:|:-------:|
|
||||
| Dragonfly | 🟩 3717 | 1ms | 2.4ms |
|
||||
| Memcached | 2100 | 🟩 0.34ms | 🟩 0.6ms |
|
||||
|
||||
|
||||
Memcached exhibited lower latency for the read benchmark, but also lower throughput.
|
||||
|
||||
### Memory efficiency
|
||||
|
||||
In the following test, we filled Dragonfly and Redis with ~5GB of data
|
||||
using `debug populate 5000000 key 1024` command. Then we started sending the update traffic with `memtier` and kicked off the snapshotting with the
|
||||
"bgsave" command. The following figure demonstrates clearly how both servers behave in terms of memory efficiency.
|
||||
|
||||
<img src="docs/bgsave_memusage.svg" width="70%" border="0"/>
|
||||
<img src="http://assets.dragonflydb.io/repo-assets/bgsave-memusage.svg" width="70%" border="0"/>
|
||||
|
||||
Dragonfly was 30% more memory efficient than Redis at the idle state.
|
||||
It also did not show any visible memory increase during the snapshot phase.
|
||||
|
8
docs/memcached_benchmark.md
Normal file
8
docs/memcached_benchmark.md
Normal file
@ -0,0 +1,8 @@
|
||||
Contention in memcached under the high write throughput.
|
||||
|
||||
<img src="http://assets.dragonflydb.io/repo-assets/memcached_perf_top.png" width="100%" border="0"/>
|
||||
|
||||
Overall CPU usage of memcached when performing SETS benchmark:
|
||||
|
||||
<img src="http://assets.dragonflydb.io/repo-assets/memcached_cpu_usage.png" width="100%" border="0"/>
|
||||
|
Loading…
Reference in New Issue
Block a user