Pages

Saturday, February 28, 2026

Benchmark of ImpossibleCloud S3 Object Storage (Prague <--> Frankfurt)

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.

16 MiB Object 
UPLOAD   (PUT) - 16 MiB Object Size,   1 stream  - Throughput 3.13 MiB/s  =  25 Mb/s
UPLOAD   (PUT) - 16 MiB Object Size,   2 streams - Throughput 7.33 MiB/s  =  58 Mb/s
UPLOAD   (PUT) - 16 MiB Object Size,   4 streams - Throughput 16.71 MiB/s = 133 Mb/s
UPLOAD   (PUT) - 16 MiB Object Size,   8 streams - Throughput 34.46 MiB/s = 275 Mb/s 
UPLOAD   (PUT) - 16 MiB Object Size,  16 streams - Throughput 45.34 MiB/s = 362 Mb/s
UPLOAD   (PUT) - 16 MiB Object Size,  32 streams - Throughput 56.72 MiB/s = 453 Mb/s
UPLOAD   (PUT) - 16 MiB Object Size,  64 streams - Throughput 68.68 MiB/s = 550 Mb/s
UPLOAD   (PUT) - 16 MiB Object Size, 128 streams - Throughput 75.60 MiB/s = 604 Mb/s 
UPLOAD   (PUT) - 16 MiB Object Size, 256 streams - Throughput 82.84 MiB/s = 662 Mb/s
UPLOAD   (PUT) - 16 MiB Object Size, 512 streams - Throughput 103.7 MiB/s = 830 Mb/s 
UPLOAD   (PUT) - 16 MiB Object Size,1024 streams - Throughput 108.1 MiB/s = 864 Mb/s
 
DOWNLOAD (GET) - 16 MiB Object Size,   1 stream  - Throughput 13.81 MiB/s = 110 Mb/s
DOWNLOAD (GET) - 16 MiB Object Size,  16 stream  - Throughput 81.45 MiB/s = 652 Mb/s
DOWNLOAD (GET) - 16 MiB Object Size,  64 streams - Throughput 100.3 MiB/s = 802 Mb/s
DOWNLOAD (GET) - 16 MiB Object Size, 128 streams - Throughput 103.5 MiB/s = 828 Mb/s 
DOWNLOAD (GET) - 16 MiB Object Size, 256 streams - Throughput 103.6 MiB/s = 828 Mb/s
DOWNLOAD (GET) - 16 MiB Object Size, 512 streams - Throughput 104.1 MiB/s = 832 Mb/s 
DOWNLOAD (GET) - 16 MiB Object Size,1024 streams - Throughput 107.1 MiB/s = 856 Mb/s

1 MiB Object 
UPLOAD   (PUT) - 1 MiB Object Size,   1  stream  - Throughput 2.58 MiB/s  =  20 Mb/s
UPLOAD   (PUT) - 1 MiB Object Size,   2  streams - Throughput 4.92 MiB/s  =  39 Mb/s
UPLOAD   (PUT) - 1 MiB Object Size,   4  streams - Throughput 9.77 MiB/s  =  78 Mb/s
UPLOAD   (PUT) - 1 MiB Object Size,   8  streams - Throughput 19.83 MiB/s = 158 Mb/s
UPLOAD   (PUT) - 1 MiB Object Size,  16  streams - Throughput 34.66 MiB/s = 277 Mb/s 
UPLOAD   (PUT) - 1 MiB Object Size,  32  streams - Throughput 53.37 MiB/s = 427 Mb/s
UPLOAD   (PUT) - 1 MiB Object Size,  64  streams - Throughput 67.28 MiB/s = 538 Mb/s
UPLOAD   (PUT) - 1 MiB Object Size,  128 streams - Throughput 70.97 MiB/s = 567 Mb/s
UPLOAD   (PUT) - 1 MiB Object Size, 1024 streams - Throughput 108.3 MiB/s = 866 Mb/s
 
DOWNLOAD (GET) - 1 MiB Object Size,    1 stream  - Throughput  5.32 MiB/s =  42 Mb/s
DOWNLOAD (GET) - 1 MiB Object Size,   16 stream  - Throughput 59.02 MiB/s = 472 Mb/s
DOWNLOAD (GET) - 1 MiB Object Size,   64 streams - Throughput 96.64 MiB/s = 771 Mb/s
DOWNLOAD (GET) - 1 MiB Object Size, 1024 streams - Throughput 107.5 MiB/s = 860 Mb/s
 

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.

fetch https://github.com/minio/warp/releases/download/v1.3.1/warp_Freebsd_x86_64.tar.gz
tar -xzf warp_Freebsd_x86_64.tar.gz 

 root@fbsd01:~ # ./warp  
 NAME:  
  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