diff options
author | Quentin Dufour <quentin@deuxfleurs.fr> | 2022-09-26 11:12:46 +0200 |
---|---|---|
committer | Quentin Dufour <quentin@deuxfleurs.fr> | 2022-09-26 11:12:46 +0200 |
commit | d574b395ffb0c5b4e672dfef3b47971b4ec82470 (patch) | |
tree | c7412a9bdeeefa6ba1a1f54f9ae04286cc15bd9f /content/blog/2022-perf | |
parent | e95289c4833eee291a8217c771c2490ebcbbc751 (diff) | |
download | garagehq.deuxfleurs.fr-d574b395ffb0c5b4e672dfef3b47971b4ec82470.tar.gz garagehq.deuxfleurs.fr-d574b395ffb0c5b4e672dfef3b47971b4ec82470.zip |
Skeleton of our perf article
Diffstat (limited to 'content/blog/2022-perf')
-rw-r--r-- | content/blog/2022-perf/1million.png | bin | 0 -> 250100 bytes | |||
-rw-r--r-- | content/blog/2022-perf/amplification.png | bin | 0 -> 145685 bytes | |||
-rw-r--r-- | content/blog/2022-perf/complexity.png | bin | 0 -> 198406 bytes | |||
-rw-r--r-- | content/blog/2022-perf/db_engine.png | bin | 0 -> 170092 bytes | |||
-rw-r--r-- | content/blog/2022-perf/index.md | 75 | ||||
-rw-r--r-- | content/blog/2022-perf/io.png | bin | 0 -> 193869 bytes | |||
-rw-r--r-- | content/blog/2022-perf/ttfb.png | bin | 0 -> 131548 bytes |
7 files changed, 75 insertions, 0 deletions
diff --git a/content/blog/2022-perf/1million.png b/content/blog/2022-perf/1million.png Binary files differnew file mode 100644 index 0000000..c7ca528 --- /dev/null +++ b/content/blog/2022-perf/1million.png diff --git a/content/blog/2022-perf/amplification.png b/content/blog/2022-perf/amplification.png Binary files differnew file mode 100644 index 0000000..8962b65 --- /dev/null +++ b/content/blog/2022-perf/amplification.png diff --git a/content/blog/2022-perf/complexity.png b/content/blog/2022-perf/complexity.png Binary files differnew file mode 100644 index 0000000..a5cf631 --- /dev/null +++ b/content/blog/2022-perf/complexity.png diff --git a/content/blog/2022-perf/db_engine.png b/content/blog/2022-perf/db_engine.png Binary files differnew file mode 100644 index 0000000..0f22d6d --- /dev/null +++ b/content/blog/2022-perf/db_engine.png diff --git a/content/blog/2022-perf/index.md b/content/blog/2022-perf/index.md new file mode 100644 index 0000000..4abcf8d --- /dev/null +++ b/content/blog/2022-perf/index.md @@ -0,0 +1,75 @@ ++++ +title="Bringing theoretical design and real word performances face to face" +date=2022-09-26 ++++ + + +*We* + +<!-- more --> + +--- + +## ⚠️ Disclaimer +The following results must be taken with a critical grain of salt due to some limitations that are inherent to any benchmark. We try to reference them in the following. + +Most of our tests are done on simulated networks that can not represent all the diversity of real networks (dynamic drop, jitter, latency, all of them could possibly be correlated with throughput or any other external event). We also limited ourselves to very small workloads that are not representative of a production cluster. + +For some benchmarks, we used Minio as a reference. It must be noted that we did not try to optimize its configuration as we have done on Garage, and more generally, we have way less knowledge on Minio than on Garage. +It must also be noted that Gare and Minio are systems with different feature set, *eg.* Minio supports erasure coding for better data density while Garage doesn't. + +Impact of the testing environment is also not evaluated (kernel patches, configuration, parameters, filesystem, etc.), some of these configurations could favor one configuration/software over another. Finally, our results are also provided without statistical tests to check their significance, and thus might be statistically not significative. + +In any case, we are not making a business or technical recommendation, we only share bits of our development process. +Read [benchmarking crimes](https://gernot-heiser.org/benchmarking-crimes.html) and make your own tests if you need to take a decision! + +## About our testing environment + +- Grid 5k. + +- My own computer. + +## Efficient I/O + +- streaming + +![](ttfb.png) + +- fsync, semaphore, timeouts, etc. + +![](io.png) + +## Million of objects + +- metadata engine + +![](db_engine.png) + +- storing metadata at scale + +![](1million.png) + +## Topology versatility + +- low bandwidth + +![]() + +- high network latency. phenomenon we name amplification + +![](amplification.png) + +- complexity (constant time) + +![](complexity.png) + + +## Future work + +- srpt + +- better analysis of the fsync / data reliability impact + +- analysis and comparison of Garage at scale + +- try to better understand ecosystem (riak cs, minio, ceph, swift) -> some knowledge to get diff --git a/content/blog/2022-perf/io.png b/content/blog/2022-perf/io.png Binary files differnew file mode 100644 index 0000000..f581a22 --- /dev/null +++ b/content/blog/2022-perf/io.png diff --git a/content/blog/2022-perf/ttfb.png b/content/blog/2022-perf/ttfb.png Binary files differnew file mode 100644 index 0000000..c0335bd --- /dev/null +++ b/content/blog/2022-perf/ttfb.png |