From 1be1715522cb33df6973d42e8c1f553f854589cd Mon Sep 17 00:00:00 2001 From: Quentin Dufour Date: Wed, 10 Aug 2022 11:10:19 +0200 Subject: [PATCH] Benchmark skeleton --- doc/book/benchmarks/_index.md | 8 ++++++++ doc/book/benchmarks/abstraction.md | 17 +++++++++++++++++ doc/book/benchmarks/failure_recovery.md | 18 ++++++++++++++++++ doc/book/benchmarks/industry_tools.md | 14 ++++++++++++++ doc/book/benchmarks/liveness.md | 10 ++++++++++ doc/book/benchmarks/network_sensitiveness.md | 14 ++++++++++++++ doc/book/benchmarks/pushing_limits.md | 16 ++++++++++++++++ doc/book/benchmarks/real_world.md | 8 ++++++++ doc/book/development/_index.md | 2 +- doc/book/working-documents/_index.md | 2 +- 10 files changed, 107 insertions(+), 2 deletions(-) create mode 100644 doc/book/benchmarks/_index.md create mode 100644 doc/book/benchmarks/abstraction.md create mode 100644 doc/book/benchmarks/failure_recovery.md create mode 100644 doc/book/benchmarks/industry_tools.md create mode 100644 doc/book/benchmarks/liveness.md create mode 100644 doc/book/benchmarks/network_sensitiveness.md create mode 100644 doc/book/benchmarks/pushing_limits.md create mode 100644 doc/book/benchmarks/real_world.md diff --git a/doc/book/benchmarks/_index.md b/doc/book/benchmarks/_index.md new file mode 100644 index 00000000..f4e8edb6 --- /dev/null +++ b/doc/book/benchmarks/_index.md @@ -0,0 +1,8 @@ ++++ +title = "Benchmarks" +weight = 60 +sort_by = "weight" +template = "documentation.html" ++++ + +Hello diff --git a/doc/book/benchmarks/abstraction.md b/doc/book/benchmarks/abstraction.md new file mode 100644 index 00000000..a429c787 --- /dev/null +++ b/doc/book/benchmarks/abstraction.md @@ -0,0 +1,17 @@ ++++ +title = "Abstraction cost" +weight = 30 ++++ + +We take as our baseline the raw disk sequential write performance. +We then compare Garage's performances to it, the difference represents what we call our "abstraction cost". + +fsync, chunking, compression, pipelining, synchronization + +# raw perf VS garage + +# garage tmpfs VS garage std + +# garage various multipart sizes + +# garage 0.7.2.1 VS upstream diff --git a/doc/book/benchmarks/failure_recovery.md b/doc/book/benchmarks/failure_recovery.md new file mode 100644 index 00000000..59c9399d --- /dev/null +++ b/doc/book/benchmarks/failure_recovery.md @@ -0,0 +1,18 @@ ++++ +title = "Failure & recovery" +weight = 50 ++++ + +# Failure impact + +Failures will lead to timeouts, which in turn could +lead to failed requests (this is a bug if failure enters in Garage tolerance) +and to increased latency as some retries might be performed. + +How we proceed: we pause (`kill -STOP xxx`) one Garage process. +The idea is we don't want to close the TCP connection that would signal too easily +that a crash occured. Instead, we want to simulate a network error +or an overloaded process, ie. a 'non-collaborating' crash. + + +# Recovery impact diff --git a/doc/book/benchmarks/industry_tools.md b/doc/book/benchmarks/industry_tools.md new file mode 100644 index 00000000..99b832e4 --- /dev/null +++ b/doc/book/benchmarks/industry_tools.md @@ -0,0 +1,14 @@ ++++ +title = "Industry tools" +weight = 60 ++++ + + +# minio warp + +# intel-cloud cosbench + +# (non retenu) + + - wasabi s3-benchmark + - https://github.com/dvassallo/s3-benchmark diff --git a/doc/book/benchmarks/liveness.md b/doc/book/benchmarks/liveness.md new file mode 100644 index 00000000..35ea19b5 --- /dev/null +++ b/doc/book/benchmarks/liveness.md @@ -0,0 +1,10 @@ ++++ +title = "Liveness" +weight = 40 ++++ + +freedom from starvation, backpressure, etc. + +# Responsiveness under read/write load + + diff --git a/doc/book/benchmarks/network_sensitiveness.md b/doc/book/benchmarks/network_sensitiveness.md new file mode 100644 index 00000000..2679811f --- /dev/null +++ b/doc/book/benchmarks/network_sensitiveness.md @@ -0,0 +1,14 @@ ++++ +title = "Network sensitiveness" +weight = 10 ++++ + +impact of node count and their latency + +# Latency amplification + +# Cluster size impact + +# Time-To-First-Byte (TTFB) + +with various object size diff --git a/doc/book/benchmarks/pushing_limits.md b/doc/book/benchmarks/pushing_limits.md new file mode 100644 index 00000000..fc0f0a72 --- /dev/null +++ b/doc/book/benchmarks/pushing_limits.md @@ -0,0 +1,16 @@ ++++ +title = "Pushing limits" +weight = 60 ++++ + +# Many objects + +# Huge objects + +# Many nodes (horizontal scalability) + + + +# Large nodes (vertical scalability) + + diff --git a/doc/book/benchmarks/real_world.md b/doc/book/benchmarks/real_world.md new file mode 100644 index 00000000..741e6c7f --- /dev/null +++ b/doc/book/benchmarks/real_world.md @@ -0,0 +1,8 @@ ++++ +title = "Real world" +weight = 80 ++++ + +# Nextcloud + +# Peertube diff --git a/doc/book/development/_index.md b/doc/book/development/_index.md index 662ec358..3ef4ed52 100644 --- a/doc/book/development/_index.md +++ b/doc/book/development/_index.md @@ -1,6 +1,6 @@ +++ title = "Development" -weight = 6 +weight = 70 sort_by = "weight" template = "documentation.html" +++ diff --git a/doc/book/working-documents/_index.md b/doc/book/working-documents/_index.md index 9871d206..e204d1fd 100644 --- a/doc/book/working-documents/_index.md +++ b/doc/book/working-documents/_index.md @@ -1,6 +1,6 @@ +++ title = "Working Documents" -weight = 7 +weight = 80 sort_by = "weight" template = "documentation.html" +++