ImpossibleCloud (IC) S3 storage is pretty interesting offering of European Object Storage. Cloud4com datacenters are located in Czechia, Prague and closest IC S3 Storage is in Frankfurt. IC S3 Storage could be used for offsite backups or remote object repositories. Our primary use case is Off-Site Backup Repository.
In this blog post, I will do a benchmark of ImpossibleCloud S3 storage located in Frankfurt accessed from Prague's Cloud4com datacenter.
I have S3 client in Cloud4com vPDC in Prague and accessing ImpossibleCloud S3 Storage in Frankfurt.
Cloud4com physical datacenter is located at Prague, TTC
- vRouter with Guaranteed bandwidth (CIR) 100 Mbps and Maximal bandwidth (Shaping) 1000 Mb/s
- S3 Client (MinIO Warp) is running on VM (4 vCPU, 4 GB RAM, 1 Gb vNIC, 10 GB vSSD @ 500 IOPS) with FreeBSD 14.3
ImpossibleCloud S3 Storage is located at the “eu-central-2” region which corresponds to data centers in Germany (Europe / Frankfurt area).
Let's do some performance tests and report achieved results.
Consolidated Benchmark Results
Here are consolidated results from various tests described later in this blog post.
Conclusion
I have tested that
- upload throughput of 16 MiB Object is dependent on number of streams (concurency) and vary between 3 MB/s and 108 MB/s
- upload throughput of 1 MiB Object is dependent on number of streams (concurency) and vary between 2.5 MB/s and 108 MB/s
- download throughput of 16 MiB Object is dependent on number of streams (concurency) and vary between 14 MB/s and 107 MB/s
- download throughput of 1 MiB Object is dependent on number of streams (concurency) and vary between 5 MB/s and 107 MB/s
Theoretical maximal throughput through 1 Gb line is 125 MB/s and we are able to achieve 108 MB/s, therefore S3 Overhead is 13.6%. which is exactly within the range of the typical overhead of S3 protocol (~100–115 MB/s).
It seems that the vRouter 1 Gb connectivity to the Internet is the bottleneck in my testing, but this performance is the exact limit I would like to have per the tenant of our multi-tenant environment, therefore, the testing is successful and ImpossibleCloud is compliant with our operational requirements of Off-Site Secondary Storage for backups.
For detailed test results look below the dashed line.
---------------------------------------
Benchmark Tests - detail testing
Let's do various S3 benchmark tests.
Benchmark Tooling
I use MinIO Warp on FreeBSD and here is the installation procedure.
root@fbsd01:~ #./warpNAME: warp - Benchmark tool for S3 compatible object storage systems. For usage details see https://github.com/minio/warp USAGE: warp [global options] command [command options] [arguments...] VERSION: 1.3.1 - 143bf4f AUTHOR: MinIO, Inc. COMMANDS: mixed benchmark mixed objects get benchmark get objects put benchmark put objects delete benchmark delete objects list benchmark list objects stat benchmark stat objects (get file info) versioned benchmark mixed versioned objects retention benchmark PutObjectRetention multipart benchmark multipart object multipart-put benchmark multipart upload zip benchmark minio s3zip snowball benchmark put objects in snowball tar files fanout benchmark fan-out of objects on MinIO servers append benchmark appen objects (s3 express) analyze analyze existing benchmark data cmp compare existing benchmark data merge merge existing benchmark data client run warp in client mode, accepting connections to run benchmarks run run benchmark defined in YAML file GLOBAL FLAGS: --no-color disable color theme --debug enable debug output --insecure disable TLS certificate verification --autocompletion install auto-completion for your shell --help, -h show help --version, -v print the version COPYRIGHT: (c) 2020-2024 MinIO, Inc. root@fbsd01:~ #
Let's do various S3 tests.
UPLOAD of 16 MiB Object Size
In this section, we will do upload tests with 16 MiB Object.
Test UPLOAD (PUT) throughput - 16 MiB Object Size, 1 stream
Test command:
./warp put \
--host eu-central-2.storage.impossibleapi.net \
--access-key KEY \
--secret-key SECRET \
--tls \
--bucket test-eu-central-2 \
--obj.size 16MiB \
--concurrent 1 \
--duration 2m \
--lookup host
Report:
PUT. Concurrency: 1. Ran: 2m0s
* Average: 3.13 MiB/s, 0.20 obj/s
* Reqs: Avg: 5121.9ms, 50%: 5426.2ms, 90%: 5426.2ms, 99%: 5426.2ms, Fastest: 4388.2ms, Slowest: 6156.9ms, StdDev: 430.3ms
Throughput, split into 120 x 1s:
* Fastest: 3.6MiB/s, 0.23 obj/s
* 50% Median: 3.1MiB/s, 0.20 obj/s
* Slowest: 2.6MiB/s, 0.16 obj/s
Throughput 3.13 MiB/s = 25 Mb/s
Test UPLOAD (PUT) throughput - 16 MiB Object Size, 2 streams
Test command:
./warp put \
--host eu-central-2.storage.impossibleapi.net \
--access-key KEY \
--secret-key SECRET \
--tls \
--bucket test-eu-central-2 \
--obj.size 16MiB \
--concurrent 2 \
--duration 2m \
--lookup host
Report:
PUT. Concurrency: 2. Ran: 1m59s
* Average: 7.33 MiB/s, 0.46 obj/s
* Reqs: Avg: 4409.1ms, 50%: 4607.0ms, 90%: 5476.4ms, 99%: 5476.4ms, Fastest: 2047.3ms, Slowest: 6514.3ms, StdDev: 849.5ms
Throughput, split into 119 x 1s:
* Fastest: 11.7MiB/s, 0.73 obj/s
* 50% Median: 7.1MiB/s, 0.44 obj/s
* Slowest: 5.5MiB/s, 0.34 obj/s
Throughput 7.33 MiB/s = 58.64 Mb/s
Test UPLOAD (PUT) throughput - 16 MiB Object Size, 4 streams
Test command:
./warp put \
--host eu-central-2.storage.impossibleapi.net \
--access-key KEY \
--secret-key SECRET \
--tls \
--bucket test-eu-central-2 \
--obj.size 16MiB \
--concurrent 4 \
--duration 2m \
--lookup host
Report:
PUT. Concurrency: 4. Ran: 1m58s
* Average: 16.71 MiB/s, 1.04 obj/s
* Reqs: Avg: 3993.9ms, 50%: 4222.1ms, 90%: 5106.7ms, 99%: 5106.7ms, Fastest: 1836.9ms, Slowest: 7628.6ms, StdDev: 760.7ms
Throughput, split into 118 x 1s:
* Fastest: 25.3MiB/s, 1.58 obj/s
* 50% Median: 15.8MiB/s, 0.99 obj/s
* Slowest: 9.2MiB/s, 0.58 obj/s
Throughput 16.71 MiB/s = 133 Mb/s
Test UPLOAD (PUT) throughput - 16 MiB Object Size, 8 streams
Test command:
./warp put \
--host eu-central-2.storage.impossibleapi.net \
--access-key KEY \
--secret-key SECRET \
--tls \
--bucket test-eu-central-2 \
--obj.size 16MiB \
--concurrent 8 \
--duration 2m \
--lookup host
Report:
PUT. Concurrency: 8. Ran: 1m59s
* Average: 34.46 MiB/s, 2.15 obj/s
* Reqs: Avg: 3667.3ms, 50%: 3630.4ms, 90%: 4726.6ms, 99%: 5147.6ms, Fastest: 2040.8ms, Slowest: 6997.4ms, StdDev: 698.2ms
Throughput, split into 119 x 1s:
* Fastest: 42.4MiB/s, 2.65 obj/s
* 50% Median: 35.3MiB/s, 2.21 obj/s
* Slowest: 21.3MiB/s, 1.33 obj/s
Throughput 34.46 MiB/s = 275.68 Mb/s
Test UPLOAD (PUT) throughput - 16 MiB Object Size, 16 streams
Test command:
./warp put \
--host eu-central-2.storage.impossibleapi.net \
--access-key KEY \
--secret-key SECRET \
--tls \
--bucket test-eu-central-2 \
--obj.size 16MiB \
--concurrent 16 \
--duration 2m \
--lookup host
Report:
PUT. Concurrency: 16. Ran: 2m1s
* Average: 45.34 MiB/s, 2.83 obj/s
* Reqs: Avg: 5632.2ms, 50%: 5594.8ms, 90%: 7219.1ms, 99%: 8117.1ms, Fastest: 2594.3ms, Slowest: 12404.7ms, StdDev: 1092.7ms
Throughput, split into 121 x 1s:
* Fastest: 53.8MiB/s, 3.36 obj/s
* 50% Median: 47.0MiB/s, 2.93 obj/s
* Slowest: 26.6MiB/s, 1.66 obj/s
Throughput 45.34 MiB/s = 362.72 Mb/s
Test UPLOAD (PUT) throughput - 16 MiB Object Size, 32 streams
Test command:
./warp put \
--host eu-central-2.storage.impossibleapi.net \
--access-key KEY \
--secret-key SECRET \
--tls \
--bucket test-eu-central-2 \
--obj.size 16MiB \
--concurrent 32 \
--duration 2m \
--lookup host
Report:
PUT. Concurrency: 32. Ran: 2m2s
* Average: 56.72 MiB/s, 3.55 obj/s
* Reqs: Avg: 8842.2ms, 50%: 8782.7ms, 90%: 11383.0ms, 99%: 12318.4ms, Fastest: 4605.2ms, Slowest: 13527.6ms, StdDev: 1710.9ms
Throughput, split into 122 x 1s:
* Fastest: 63.2MiB/s, 3.95 obj/s
* 50% Median: 56.8MiB/s, 3.55 obj/s
* Slowest: 48.0MiB/s, 3.00 obj/s
Throughput 56.72 MiB/s = 453.76 Mb/s
Test UPLOAD (PUT) throughput - 16 MiB Object Size, 64 streams
Test command:
./warp put \
--host eu-central-2.storage.impossibleapi.net \
--access-key KEY \
--secret-key SECRET \
--tls \
--bucket test-eu-central-2 \
--obj.size 16MiB \
--concurrent 64 \
--duration 2m \
--lookup host
Report:
PUT. Concurrency: 64. Ran: 2m6s
* Average: 68.68 MiB/s, 4.29 obj/s
* Reqs: Avg: 14557.7ms, 50%: 13582.8ms, 90%: 20149.1ms, 99%: 22277.0ms, Fastest: 6767.3ms, Slowest: 25014.5ms, StdDev: 3602.5ms
Throughput, split into 126 x 1s:
* Fastest: 80.7MiB/s, 5.04 obj/s
* 50% Median: 69.4MiB/s, 4.34 obj/s
* Slowest: 21.7MiB/s, 1.35 obj/s
Throughput 68.68 MiB/s = 550 Mb/s
Test UPLOAD (PUT) throughput - 16 MiB Object Size, 128 streams
Test command:
./warp put \
--host eu-central-2.storage.impossibleapi.net \
--access-key KEY \
--secret-key SECRET \
--tls \
--bucket test-eu-central-2 \
--obj.size 16MiB \
--concurrent 128 \
--duration 2m \
--lookup host
Report:
PUT. Concurrency: 128. Ran: 2m13s
* Average: 75.60 MiB/s, 4.72 obj/s
* Reqs: Avg: 26428.1ms, 50%: 25926.6ms, 90%: 33811.7ms, 99%: 36268.3ms, Fastest: 14014.5ms, Slowest: 44388.5ms, StdDev: 4734.8ms
Throughput, split into 133 x 1s:
* Fastest: 91.4MiB/s, 5.71 obj/s
* 50% Median: 75.7MiB/s, 4.73 obj/s
* Slowest: 26.8MiB/s, 1.67 obj/s
Throughput 75.60 MiB/s = 604 Mb/s
Test UPLOAD (PUT) throughput - 16 MiB Object Size, 256 streams
Test command:
./warp put \
--host eu-central-2.storage.impossibleapi.net \
--access-key KEY \
--secret-key SECRET \
--tls \
--bucket test-eu-central-2 \
--obj.size 16MiB \
--concurrent 256 \
--duration 2m \
--lookup host
Report:
PUT. Concurrency: 256. Ran: 2m23s
* Average: 82.84 MiB/s, 5.18 obj/s
* Reqs: Avg: 45845.2ms, 50%: 45208.1ms, 90%: 52761.9ms, 99%: 59891.9ms, Fastest: 19169.9ms, Slowest: 78017.4ms, StdDev: 6173.6ms
Throughput, split into 143 x 1s:
* Fastest: 107.7MiB/s, 6.73 obj/s
* 50% Median: 84.5MiB/s, 5.28 obj/s
* Slowest: 16.3MiB/s, 1.02 obj/s
Throughput 82.84 MiB/s = 662 Mb/s
Test UPLOAD (PUT) throughput - 16 MiB Object Size, 512 streams
Test command:
./warp put \
--host eu-central-2.storage.impossibleapi.net \
--access-key KEY \
--secret-key SECRET \
--tls \
--bucket test-eu-central-2 \
--obj.size 16MiB \
--concurrent 512 \
--duration 2m \
--lookup host
Report:
PUT. Concurrency: 512. Ran: 2m44s
* Average: 103.73 MiB/s, 6.48 obj/s
* Reqs: Avg: 73079.1ms, 50%: 71493.0ms, 90%: 84909.6ms, 99%: 92461.1ms, Fastest: 36473.0ms, Slowest: 132882.4ms, StdDev: 9817.5ms
Throughput, split into 164 x 1s:
* Fastest: 134.2MiB/s, 8.39 obj/s
* 50% Median: 106.1MiB/s, 6.63 obj/s
* Slowest: 8.4MiB/s, 0.53 obj/s
Throughput 103.73 MiB/s = 830 Mb/s
Test UPLOAD (PUT) throughput - 16 MiB Object Size, 1024 streams
Test command:
./warp put \
--host eu-central-2.storage.impossibleapi.net \
--access-key KEY \
--secret-key SECRET \
--tls \
--bucket test-eu-central-2 \
--obj.size 16MiB \
--concurrent 1024 \
--duration 2m \
--lookup host
Report:
PUT. Concurrency: 1024. Ran: 2m35s
* Average: 108.06 MiB/s, 6.75 obj/s
* Reqs: Avg: 124810.7ms, 50%: 117799.3ms, 90%: 138087.2ms, 99%: 138701.5ms, Fastest: 37036.7ms, Slowest: 156634.0ms, StdDev: 13352.0ms
Throughput, split into 155 x 1s:
* Fastest: 124.6MiB/s, 7.79 obj/s
* 50% Median: 116.5MiB/s, 7.28 obj/s
* Slowest: 11.7MiB/s, 0.73 obj/s
Throughput 108.06 MiB/s = 864 Mb/s
DOWNLOAD of 16 MiB Object Size
In this section, we will do download tests with 16 MiB Object.
Test DOWNLOAD (GET) throughput - 16 MiB Object Size, 1 stream
Test command:
./warp get \
--host eu-central-2.storage.impossibleapi.net \
--access-key KEY \
--secret-key SECRET \
--tls \
--bucket test-eu-central-2 \
--obj.size 16MiB \
--concurrent 1 \
--duration 2m \
--lookup host
Report:
GET. Concurrency: 1. Ran: 1m58s
* Average: 13.81 MiB/s, 0.86 obj/s
* Reqs: Avg: 1263.3ms, 50%: 1333.9ms, 90%: 2088.9ms, 99%: 2088.9ms, Fastest: 683.9ms, Slowest: 2892.2ms, StdDev: 440.8ms
* TTFB: Avg: 217ms, Best: 70ms, 25th: 164ms, Median: 217ms, 75th: 268ms, 90th: 413ms, 99th: 413ms, Worst: 765ms StdDev: 97ms
Throughput, split into 118 x 1s:
* Fastest: 22.5MiB/s, 1.41 obj/s
* 50% Median: 13.4MiB/s, 0.84 obj/s
* Slowest: 5.5MiB/s, 0.35 obj/s
Throughput 13.81 MiB/s = 110.48 Mb/s
Test DOWNLOAD (GET) throughput - 16 MiB Object Size, 16 stream
Test command:
./warp get \
--host eu-central-2.storage.impossibleapi.net \
--access-key KEY \
--secret-key SECRET \
--tls \
--bucket test-eu-central-2 \
--obj.size 16MiB \
--concurrent 16 \
--duration 2m \
--lookup host
Report:
GET. Concurrency: 16. Ran: 2m15s
* Average: 81.45 MiB/s, 5.09 obj/s
* Reqs: Avg: 4119.0ms, 50%: 3786.5ms, 90%: 5997.3ms, 99%: 10320.8ms, Fastest: 561.2ms, Slowest: 19923.3ms, StdDev: 1724.4ms
* TTFB: Avg: 1.723s, Best: 33ms, 25th: 1.282s, Median: 1.343s, 75th: 1.889s, 90th: 2.936s, 99th: 7.531s, Worst: 17.48s StdDev: 1.454s
Throughput, split into 135 x 1s:
* Fastest: 113.1MiB/s, 7.07 obj/s
* 50% Median: 92.6MiB/s, 5.79 obj/s
* Slowest: 2044.3KiB/s, 0.12 obj/s
Throughput 81.45 MiB/s = 651.6 Mb/s
Test DOWNLOAD (GET) throughput - 16 MiB Object Size, 64 streams
Test command:
./warp get \
--host eu-central-2.storage.impossibleapi.net \
--access-key KEY \
--secret-key SECRET \
--tls \
--bucket test-eu-central-2 \
--obj.size 16MiB \
--concurrent 64 \
--duration 2m \
--lookup host
Report:
GET. Concurrency: 64. Ran: 2m2s
* Average: 100.36 MiB/s, 6.27 obj/s
* Reqs: Avg: 10133.7ms, 50%: 10141.0ms, 90%: 10828.6ms, 99%: 15442.5ms, Fastest: 5650.6ms, Slowest: 17369.9ms, StdDev: 1060.5ms
* TTFB: Avg: 56ms, Best: 30ms, 25th: 43ms, Median: 55ms, 75th: 66ms, 90th: 73ms, 99th: 135ms, Worst: 315ms StdDev: 19ms
Throughput, split into 122 x 1s:
* Fastest: 114.2MiB/s, 7.14 obj/s
* 50% Median: 102.2MiB/s, 6.39 obj/s
* Slowest: 66.7MiB/s, 4.17 obj/s
Throughput 100.36 MiB/s = 802.88 Mb/s
Test DOWNLOAD (GET) throughput - 16 MiB Object Size, 128 streams
Test command:
./warp get \
--host eu-central-2.storage.impossibleapi.net \
--access-key KEY \
--secret-key SECRET \
--tls \
--bucket test-eu-central-2 \
--obj.size 16MiB \
--concurrent 128 \
--duration 2m \
--lookup host
Report:
GET. Concurrency: 128. Ran: 2m11s
* Average: 103.57 MiB/s, 6.47 obj/s
* Reqs: Avg: 19500.3ms, 50%: 18653.8ms, 90%: 22893.9ms, 99%: 32656.0ms, Fastest: 14321.4ms, Slowest: 42159.9ms, StdDev: 3098.7ms
* TTFB: Avg: 68ms, Best: 31ms, 25th: 55ms, Median: 65ms, 75th: 77ms, 90th: 92ms, 99th: 248ms, Worst: 867ms StdDev: 31ms
Throughput, split into 131 x 1s:
* Fastest: 118.9MiB/s, 7.43 obj/s
* 50% Median: 105.4MiB/s, 6.59 obj/s
* Slowest: 50.5MiB/s, 3.16 obj/s
Throughput 103.57 MiB/s = 828 Mb/s
Test DOWNLOAD (GET) throughput - 16 MiB Object Size, 256 streams
Test command:
./warp get \
--host eu-central-2.storage.impossibleapi.net \
--access-key KEY \
--secret-key SECRET \
--tls \
--bucket test-eu-central-2 \
--obj.size 16MiB \
--concurrent 256 \
--duration 2m \
--lookup host
Report:
GET. Concurrency: 256. Ran: 2m20s
* Average: 103.61 MiB/s, 6.48 obj/s
* Reqs: Avg: 39619.5ms, 50%: 39018.5ms, 90%: 45950.2ms, 99%: 51570.7ms, Fastest: 22367.6ms, Slowest: 64516.3ms, StdDev: 4859.2ms
* TTFB: Avg: 93ms, Best: 31ms, 25th: 50ms, Median: 64ms, 75th: 130ms, 90th: 172ms, 99th: 322ms, Worst: 853ms StdDev: 62ms
Throughput, split into 140 x 1s:
* Fastest: 126.6MiB/s, 7.91 obj/s
* 50% Median: 103.0MiB/s, 6.44 obj/s
* Slowest: 25.7MiB/s, 1.61 obj/s
Throughput 103.61 MiB/s = 828.88 Mb/s
Test DOWNLOAD (GET) throughput - 16 MiB Object Size, 1024 streams
Test command:
./warp get \
--host eu-central-2.storage.impossibleapi.net \
--access-key KEY \
--secret-key SECRET \
--tls \
--bucket test-eu-central-2 \
--obj.size 16MiB \
--concurrent 1024 \
--duration 2m \
--lookup host
Report:
GET. Concurrency: 1024. Ran: 2m31s
* Average: 107.11 MiB/s, 6.69 obj/s
* Errors: 7
* Reqs: Avg: 142347.0ms, 50%: 142404.0ms, 90%: 144983.4ms, 99%: 145685.4ms, Fastest: 123373.9ms, Slowest: 154568.7ms, StdDev: 2001.6ms
* TTFB: Avg: 347ms, Best: 42ms, 25th: 109ms, Median: 236ms, 75th: 438ms, 90th: 783ms, 99th: 2.157s, Worst: 3.681s StdDev: 379ms
Throughput, split into 151 x 1s:
* Fastest: 114.8MiB/s, 7.17 obj/s
* 50% Median: 114.8MiB/s, 7.17 obj/s
* Slowest: 7.7MiB/s, 0.48 obj/s
Throughput 107.11 MiB/s = 856.8 Mb/s
UPLOAD of 1 MiB Object Size
In this section, we will do upload tests with 1 MiB Object.
Test UPLOAD (PUT) throughput - 1 MiB Object Size, 1 stream
Test command:
./warp put \
--host eu-central-2.storage.impossibleapi.net \
--access-key KEY \
--secret-key SECRET \
--tls \
--bucket test-eu-central-2 \
--obj.size 1MiB \
--concurrent 1 \
--duration 2m \
--lookup host
Report:
PUT. Concurrency: 1. Ran: 1m57s
* Average: 2.58 MiB/s, 2.58 obj/s
* Reqs: Avg: 384.7ms, 50%: 383.0ms, 90%: 461.4ms, 99%: 529.3ms, Fastest: 270.8ms, Slowest: 615.2ms, StdDev: 58.9ms
Throughput, split into 117 x 1s:
* Fastest: 3.2MiB/s, 3.22 obj/s
* 50% Median: 2.6MiB/s, 2.58 obj/s
* Slowest: 1953.6KiB/s, 1.91 obj/s
Throughput 2.58 MiB/s = 20.64 Mb/s
Test UPLOAD (PUT) throughput - 1 MiB Object Size, 2 streams
Test command:
./warp put \
--host eu-central-2.storage.impossibleapi.net \
--access-key KEY \
--secret-key SECRET \
--tls \
--bucket test-eu-central-2 \
--obj.size 1MiB \
--concurrent 2 \
--duration 2m \
--lookup host
Report:
Report: PUT. Concurrency: 2. Ran: 1m57s
* Average: 4.92 MiB/s, 4.92 obj/s
* Reqs: Avg: 408.2ms, 50%: 392.9ms, 90%: 526.0ms, 99%: 718.8ms, Fastest: 252.6ms, Slowest: 1001.4ms, StdDev: 92.2ms
Throughput, split into 117 x 1s:
* Fastest: 6.6MiB/s, 6.57 obj/s
* 50% Median: 5.2MiB/s, 5.15 obj/s
* Slowest: 3.0MiB/s, 3.00 obj/s
Throughput 4.92 MiB/s = 39.36 Mb/s
Test UPLOAD (PUT) throughput - 1 MiB Object Size, 4 streams
Test command:
./warp put \
--host eu-central-2.storage.impossibleapi.net \
--access-key KEY \
--secret-key SECRET \
--tls \
--bucket test-eu-central-2 \
--obj.size 1MiB \
--concurrent 4 \
--duration 2m \
--lookup host
Report:
PUT. Concurrency: 4. Ran: 1m58s
* Average: 9.77 MiB/s, 9.77 obj/s
* Reqs: Avg: 410.2ms, 50%: 396.4ms, 90%: 519.2ms, 99%: 900.0ms, Fastest: 245.0ms, Slowest: 1573.6ms, StdDev: 99.5ms
Throughput, split into 118 x 1s:
* Fastest: 11.5MiB/s, 11.52 obj/s
* 50% Median: 10.1MiB/s, 10.05 obj/s
* Slowest: 5.8MiB/s, 5.81 obj/s
Throughput 9.77 MiB/s = 78.16 Mb/s
Test UPLOAD (PUT) throughput - 1 MiB Object Size, 8 streams
Test command:
./warp put \
--host eu-central-2.storage.impossibleapi.net \
--access-key KEY \
--secret-key SECRET \
--tls \
--bucket test-eu-central-2 \
--obj.size 1MiB \
--concurrent 8 \
--duration 2m \
--lookup host
Report:
PUT. Concurrency: 8. Ran: 1m57s
* Average: 19.83 MiB/s, 19.83 obj/s
* Reqs: Avg: 403.1ms, 50%: 381.8ms, 90%: 518.5ms, 99%: 849.8ms, Fastest: 198.3ms, Slowest: 2392.7ms, StdDev: 107.4ms
Throughput, split into 117 x 1s:
* Fastest: 22.5MiB/s, 22.52 obj/s
* 50% Median: 20.2MiB/s, 20.16 obj/s
* Slowest: 6.7MiB/s, 6.75 obj/s
Throughput 19.83 MiB/s = 158.64 Mb/s
Test UPLOAD (PUT) throughput - 1 MiB Object Size, 16 streams
Test command:
./warp put \
--host eu-central-2.storage.impossibleapi.net \
--access-key KEY \
--secret-key SECRET \
--tls \
--bucket test-eu-central-2 \
--obj.size 1MiB \
--concurrent 16 \
--duration 2m \
--lookup host
Report:
PUT. Concurrency: 16. Ran: 1m58s
* Average: 34.66 MiB/s, 34.66 obj/s
* Reqs: Avg: 471.8ms, 50%: 438.4ms, 90%: 679.7ms, 99%: 993.5ms, Fastest: 201.1ms, Slowest: 1681.7ms, StdDev: 149.5ms
Throughput, split into 118 x 1s:
* Fastest: 44.2MiB/s, 44.17 obj/s
* 50% Median: 36.0MiB/s, 35.99 obj/s
* Slowest: 19.9MiB/s, 19.90 obj/s
Throughput 34.66 MiB/s = 277.28 Mb/s
Test UPLOAD (PUT) throughput - 1 MiB Object Size, 32 streams
Test command:
./warp put \
--host eu-central-2.storage.impossibleapi.net \
--access-key KEY \
--secret-key SECRET \
--tls \
--bucket test-eu-central-2 \
--obj.size 1MiB \
--concurrent 32 \
--duration 2m \
--lookup host
Report:
PUT. Concurrency: 32. Ran: 1m58s
* Average: 53.37 MiB/s, 53.37 obj/s
* Reqs: Avg: 611.7ms, 50%: 566.9ms, 90%: 903.3ms, 99%: 1364.7ms, Fastest: 217.1ms, Slowest: 2200.7ms, StdDev: 216.8ms
Throughput, split into 118 x 1s:
* Fastest: 60.4MiB/s, 60.39 obj/s
* 50% Median: 54.5MiB/s, 54.46 obj/s
* Slowest: 40.0MiB/s, 40.03 obj/s
Throughput 53.37 MiB/s = 426.96 Mb/s
Test UPLOAD (PUT) throughput - 1 MiB Object Size, 64 streams
Test command:
./warp put \
--host eu-central-2.storage.impossibleapi.net \
--access-key KEY \
--secret-key SECRET \
--tls \
--bucket test-eu-central-2 \
--obj.size 1MiB \
--concurrent 64 \
--duration 2m \
--lookup host
Report:
PUT. Concurrency: 64. Ran: 1m59s
* Average: 67.28 MiB/s, 67.28 obj/s
* Reqs: Avg: 959.0ms, 50%: 903.7ms, 90%: 1442.0ms, 99%: 2007.7ms, Fastest: 278.3ms, Slowest: 3005.6ms, StdDev: 353.2ms
Throughput, split into 119 x 1s:
* Fastest: 73.5MiB/s, 73.47 obj/s
* 50% Median: 67.7MiB/s, 67.72 obj/s
* Slowest: 54.7MiB/s, 54.73 obj/s
Throughput 67.28 MiB/s = 538.24 Mb/s
Test UPLOAD (PUT) throughput - 1 MiB Object Size, 128 streams
Test command:
./warp put \
--host eu-central-2.storage.impossibleapi.net \
--access-key KEY \
--secret-key SECRET \
--tls \
--bucket test-eu-central-2 \
--obj.size 1MiB \
--concurrent 128 \
--duration 2m \
--lookup host
Report:
PUT. Concurrency: 128. Ran: 2m0s
* Average: 70.97 MiB/s, 70.97 obj/s
* Reqs: Avg: 1805.8ms, 50%: 1711.3ms, 90%: 2701.5ms, 99%: 3859.0ms, Fastest: 390.3ms, Slowest: 7449.0ms, StdDev: 659.0ms
Throughput, split into 120 x 1s:
* Fastest: 76.8MiB/s, 76.81 obj/s
* 50% Median: 72.4MiB/s, 72.43 obj/s
* Slowest: 40.9MiB/s, 40.93 obj/s
Throughput 70.97 MiB/s = 567.76 Mb/s
Test UPLOAD (PUT) throughput - 1 MiB Object Size, 1024 streams
Test command:
./warp put \
--host eu-central-2.storage.impossibleapi.net \
--access-key KEY \
--secret-key SECRET \
--tls \
--bucket test-eu-central-2 \
--obj.size 1MiB \
--concurrent 1024 \
--duration 2m \
--lookup host
Report:
PUT. Concurrency: 1024. Ran: 2m4s
* Average: 108.33 MiB/s, 108.33 obj/s
* Reqs: Avg: 9159.8ms, 50%: 9066.6ms, 90%: 11334.9ms, 99%: 13497.3ms, Fastest: 3195.1ms, Slowest: 35719.7ms, StdDev: 1747.8ms
Throughput, split into 124 x 1s:
* Fastest: 134.3MiB/s, 134.33 obj/s
* 50% Median: 109.8MiB/s, 109.79 obj/s
* Slowest: 19.6MiB/s, 19.64 obj/s
Throughput 108.33 MiB/s = 866.64 Mb/s
DOWNLOAD of 1 MiB Object Size
In this section, we will do download tests with 1 MiB Object.
Test DOWNLOAD (GET) throughput - 1 MiB Object Size, 1 streams
Test command:
./warp get \
--host eu-central-2.storage.impossibleapi.net \
--access-key KEY \
--secret-key SECRET \
--tls \
--bucket test-eu-central-2 \
--obj.size 1MiB \
--concurrent 1 \
--duration 2m \
--lookup host
Report:
GET. Concurrency: 1. Ran: 1m57s
* Average: 5.32 MiB/s, 5.32 obj/s
* Reqs: Avg: 196.4ms, 50%: 193.0ms, 90%: 253.7ms, 99%: 321.3ms, Fastest: 90.9ms, Slowest: 467.1ms, StdDev: 43.6ms
* TTFB: Avg: 86ms, Best: 30ms, 25th: 70ms, Median: 84ms, 75th: 100ms, 90th: 128ms, 99th: 195ms, Worst: 385ms StdDev: 33ms
Throughput, split into 117 x 1s:
* Fastest: 7.5MiB/s, 7.52 obj/s
* 50% Median: 5.2MiB/s, 5.23 obj/s
* Slowest: 3.5MiB/s, 3.52 obj/s
Throughput 5.32 MiB/s = 42.56 Mb/s
Test DOWNLOAD (GET) throughput - 1 MiB Object Size, 16 streams
Test command:
./warp get \
--host eu-central-2.storage.impossibleapi.net \
--access-key KEY \
--secret-key SECRET \
--tls \
--bucket test-eu-central-2 \
--obj.size 1MiB \
--concurrent 16 \
--duration 2m \
--lookup host
Report:
GET. Concurrency: 16. Ran: 1m57s
* Average: 59.02 MiB/s, 59.02 obj/s
* Reqs: Avg: 311.4ms, 50%: 299.4ms, 90%: 424.1ms, 99%: 650.0ms, Fastest: 83.3ms, Slowest: 1464.0ms, StdDev: 97.5ms
* TTFB: Avg: 117ms, Best: 30ms, 25th: 84ms, Median: 107ms, 75th: 133ms, 90th: 165ms, 99th: 345ms, Worst: 960ms StdDev: 55ms
Throughput, split into 117 x 1s:
* Fastest: 100.6MiB/s, 100.57 obj/s
* 50% Median: 66.1MiB/s, 66.09 obj/s
* Slowest: 23.1MiB/s, 23.07 obj/s
Throughput 59.02 MiB/s = 472.16 Mb/s
Test DOWNLOAD (GET) throughput - 1 MiB Object Size, 64 streams
Test command:
./warp get \
--host eu-central-2.storage.impossibleapi.net \
--access-key KEY \
--secret-key SECRET \
--tls \
--bucket test-eu-central-2 \
--obj.size 1MiB \
--concurrent 64 \
--duration 2m \
--lookup host
Report:
GET. Concurrency: 64. Ran: 1m58s
* Average: 96.41 MiB/s, 96.41 obj/s
* Reqs: Avg: 661.0ms, 50%: 635.5ms, 90%: 879.4ms, 99%: 1161.3ms, Fastest: 274.8ms, Slowest: 1821.6ms, StdDev: 163.9ms
* TTFB: Avg: 35ms, Best: 25ms, 25th: 29ms, Median: 31ms, 75th: 36ms, 90th: 43ms, 99th: 91ms, Worst: 405ms StdDev: 15ms
Throughput, split into 118 x 1s:
* Fastest: 104.1MiB/s, 104.14 obj/s
* 50% Median: 98.7MiB/s, 98.75 obj/s
* Slowest: 70.1MiB/s, 70.10 obj/s
Throughput 96.41 MiB/s = 771.28 Mb/s
Test DOWNLOAD (GET) throughput - 1 MiB Object Size, 1024 streams
Test command:
./warp get \
--host eu-central-2.storage.impossibleapi.net \
--access-key KEY \
--secret-key SECRET \
--tls \
--bucket test-eu-central-2 \
--obj.size 1MiB \
--concurrent 1024 \
--duration 2m \
--lookup host
Report:
GET. Concurrency: 1024. Ran: 2m3s
* Average: 107.54 MiB/s, 107.54 obj/s
* Reqs: Avg: 9360.4ms, 50%: 9231.1ms, 90%: 11889.3ms, 99%: 15330.6ms, Fastest: 2702.2ms, Slowest: 23374.0ms, StdDev: 2047.6ms
* TTFB: Avg: 117ms, Best: 28ms, 25th: 55ms, Median: 80ms, 75th: 134ms, 90th: 240ms, 99th: 553ms, Worst: 1.907s StdDev: 113ms
Throughput, split into 123 x 1s:
* Fastest: 130.5MiB/s, 130.50 obj/s
* 50% Median: 108.0MiB/s, 107.97 obj/s
* Slowest: 39.6MiB/s, 39.61 obj/s
Throughput 107.54 MiB/s = 860.32 Mb/s
No comments:
Post a Comment