Skip to content

penso/test-s3-direct-upload

Repository files navigation

This is a small script to benchmark different S3 providers

  1. Run make create_files
  2. Copy storage-example.yml to storage.yml and fill it up
  3. Run make run

If you run those on a specific ISP, send a Pull Requests with results

  • AWS: fastest and very consistent

  • DigitalOcean: impressive, almost as fast as AWS

  • Google: slightly slower than S3

  • Scaleway: much slower, and massive standard deviation

      +------------------------------------------------------------------------------+
      |                       S3 benchmarks on multi provider                        |
      +----------------------+-------------+-------------+-------------+-------------+
      | Provider             |      Median |         Min |         Max |   Deviation |
      +----------------------+-------------+-------------+-------------+-------------+
      | Testing with file size: 0B                                                   |
      +------------------------------------------------------------------------------+
      | Direct Upload                                                                |
      +----------------------+-------------+-------------+-------------+-------------+
      | aws eu-west-3        |          50 |          38 |          68 |           8 |
      | scaleway par         |         355 |         161 |         508 |         111 |
      | scaleway ams         |         410 |         166 |         443 |          80 |
      | scaleway war         |         448 |         378 |         505 |          42 |
      | google europe-west-1 |          83 |          75 |         109 |          10 |
      | digitalocean ams3    |         269 |          73 |         289 |          88 |
      | digitalocean fra1    |          75 |          68 |          86 |           6 |
      +----------------------+-------------+-------------+-------------+-------------+
      | Direct Download                                                              |
      +----------------------+-------------+-------------+-------------+-------------+
      | aws eu-west-3        |          45 |          35 |          54 |           6 |
      | scaleway par         |         184 |         115 |         211 |          39 |
      | scaleway ams         |         317 |         144 |         418 |          92 |
      | scaleway war         |         330 |         301 |         390 |          33 |
      | google europe-west-1 |          66 |          49 |          92 |          11 |
      | digitalocean ams3    |         333 |          67 |        1627 |         529 |
      | digitalocean fra1    |          58 |          49 |          65 |           5 |
      +----------------------+-------------+-------------+-------------+-------------+
      
      +------------------------------------------------------------------------------+
      | Testing with file size: 1KiB                                                 |
      +------------------------------------------------------------------------------+
      | Direct Upload                                                                |
      +----------------------+-------------+-------------+-------------+-------------+
      | aws eu-west-3        |          65 |          52 |         314 |          80 |
      | scaleway par         |         352 |         180 |         501 |          96 |
      | scaleway ams         |         480 |         218 |         640 |         151 |
      | scaleway war         |         395 |         380 |         418 |          13 |
      | google europe-west-1 |          98 |          72 |         287 |          63 |
      | digitalocean ams3    |         124 |          78 |        1675 |         513 |
      | digitalocean fra1    |          72 |          66 |          87 |           7 |
      +----------------------+-------------+-------------+-------------+-------------+
      | Direct Download                                                              |
      +----------------------+-------------+-------------+-------------+-------------+
      | aws eu-west-3        |          47 |          31 |          60 |           8 |
      | scaleway par         |         159 |         110 |         236 |          47 |
      | scaleway ams         |         265 |         122 |         442 |          95 |
      | scaleway war         |         314 |         305 |         384 |          24 |
      | google europe-west-1 |          62 |          45 |          88 |          13 |
      | digitalocean ams3    |         251 |          75 |         679 |         181 |
      | digitalocean fra1    |          56 |          51 |          69 |           5 |
      +----------------------+-------------+-------------+-------------+-------------+
      
      +------------------------------------------------------------------------------+
      | Testing with file size: 10KiB                                                |
      +------------------------------------------------------------------------------+
      | Direct Upload                                                                |
      +----------------------+-------------+-------------+-------------+-------------+
      | aws eu-west-3        |          77 |          57 |         111 |          18 |
      | scaleway par         |         346 |         219 |         688 |         127 |
      | scaleway ams         |         566 |         294 |         781 |         175 |
      | scaleway war         |         439 |         375 |         473 |          36 |
      | google europe-west-1 |          89 |          65 |         137 |          23 |
      | digitalocean ams3    |         597 |         255 |        1654 |         424 |
      | digitalocean fra1    |          75 |          63 |         102 |          13 |
      +----------------------+-------------+-------------+-------------+-------------+
      | Direct Download                                                              |
      +----------------------+-------------+-------------+-------------+-------------+
      | aws eu-west-3        |          49 |          39 |          91 |          15 |
      | scaleway par         |         161 |         103 |         234 |          40 |
      | scaleway ams         |         312 |         156 |         471 |         110 |
      | scaleway war         |         311 |         294 |         378 |          30 |
      | google europe-west-1 |          65 |          48 |         107 |          17 |
      | digitalocean ams3    |         262 |          69 |         782 |         263 |
      | digitalocean fra1    |          55 |          48 |          66 |           5 |
      +----------------------+-------------+-------------+-------------+-------------+
      
      +------------------------------------------------------------------------------+
      | Testing with file size: 100KiB                                               |
      +------------------------------------------------------------------------------+
      | Direct Upload                                                                |
      +----------------------+-------------+-------------+-------------+-------------+
      | aws eu-west-3        |          79 |          66 |         143 |          29 |
      | scaleway par         |         309 |         257 |        1056 |         246 |
      | scaleway ams         |         568 |         324 |         856 |         152 |
      | scaleway war         |         392 |         382 |         427 |          16 |
      | google europe-west-1 |         119 |         100 |         146 |          16 |
      | digitalocean ams3    |         475 |         106 |        1526 |         477 |
      | digitalocean fra1    |         108 |         100 |         119 |           6 |
      +----------------------+-------------+-------------+-------------+-------------+
      | Direct Download                                                              |
      +----------------------+-------------+-------------+-------------+-------------+
      | aws eu-west-3        |          47 |          42 |          76 |          11 |
      | scaleway par         |         184 |         137 |         415 |          86 |
      | scaleway ams         |         325 |         198 |         412 |          71 |
      | scaleway war         |         429 |         400 |         489 |          34 |
      | google europe-west-1 |          97 |          68 |         172 |          42 |
      | digitalocean ams3    |         761 |         210 |        4983 |        1536 |
      | digitalocean fra1    |         101 |          89 |         220 |          49 |
      +----------------------+-------------+-------------+-------------+-------------+
      
      +------------------------------------------------------------------------------+
      | Testing with file size: 1MiB                                                 |
      +------------------------------------------------------------------------------+
      | Direct Upload                                                                |
      +----------------------+-------------+-------------+-------------+-------------+
      | aws eu-west-3        |         220 |         197 |         271 |          26 |
      | scaleway par         |         444 |         321 |         645 |          95 |
      | scaleway ams         |         594 |         368 |         793 |         141 |
      | scaleway war         |         455 |         429 |         515 |          26 |
      | google europe-west-1 |         175 |         168 |         200 |          14 |
      | digitalocean ams3    |         806 |         260 |        2094 |         698 |
      | digitalocean fra1    |         265 |         186 |         322 |          52 |
      +----------------------+-------------+-------------+-------------+-------------+
      | Direct Download                                                              |
      +----------------------+-------------+-------------+-------------+-------------+
      | aws eu-west-3        |         100 |          69 |         131 |          19 |
      | scaleway par         |         196 |         155 |         254 |          29 |
      | scaleway ams         |         422 |         262 |         542 |          88 |
      | scaleway war         |         573 |         518 |         606 |          28 |
      | google europe-west-1 |          86 |          73 |         112 |          14 |
      | digitalocean ams3    |         183 |         147 |       33182 |       10418 |
      | digitalocean fra1    |         122 |         117 |         237 |          42 |
      +----------------------+-------------+-------------+-------------+-------------+
      
      +------------------------------------------------------------------------------+
      | Testing with file size: 10MiB                                                |
      +------------------------------------------------------------------------------+
      | Direct Upload                                                                |
      +----------------------+-------------+-------------+-------------+-------------+
      | aws eu-west-3        |         506 |         458 |         539 |          25 |
      | scaleway par         |         734 |         502 |        1704 |         444 |
      | scaleway ams         |        1687 |         976 |        1811 |         282 |
      | scaleway war         |         715 |         701 |         784 |          27 |
      | google europe-west-1 |         821 |         416 |        1018 |         234 |
      | digitalocean ams3    |         932 |         606 |        3554 |         922 |
      | digitalocean fra1    |         492 |         445 |        1506 |         330 |
      +----------------------+-------------+-------------+-------------+-------------+
      | Direct Download                                                              |
      +----------------------+-------------+-------------+-------------+-------------+
      | aws eu-west-3        |         203 |         185 |         218 |          10 |
      | scaleway par         |         352 |         289 |         605 |          90 |
      | scaleway ams         |         523 |         351 |         556 |          74 |
      | scaleway war         |         710 |         660 |         797 |          43 |
      | google europe-west-1 |         173 |         156 |         203 |          14 |
      | digitalocean ams3    |       12373 |         168 |      344914 |      137730 |
      | digitalocean fra1    |         216 |         205 |         265 |          19 |
      +----------------------+-------------+-------------+-------------+-------------+
      
      +------------------------------------------------------------------------------+
      | Testing with file size: 100MiB                                               |
      +------------------------------------------------------------------------------+
      | Direct Upload                                                                |
      +----------------------+-------------+-------------+-------------+-------------+
      | aws eu-west-3        |        1857 |        1644 |        2600 |         300 |
      | scaleway par         |        1944 |        1788 |        2683 |         348 |
      | scaleway ams         |        5338 |        1952 |        7262 |        2008 |
      | scaleway war         |        2301 |        2095 |        2431 |         101 |
      | google europe-west-1 |        1777 |        1740 |        2723 |         386 |
      | digitalocean ams3    |        3985 |        1937 |       15225 |        5123 |
      | digitalocean fra1    |        1989 |        1773 |        3291 |         486 |
      +----------------------+-------------+-------------+-------------+-------------+
      | Direct Download                                                              |
      +----------------------+-------------+-------------+-------------+-------------+
      | aws eu-west-3        |        1101 |        1066 |        1489 |         179 |
      | scaleway par         |        1238 |        1139 |        2221 |         381 |
      | scaleway ams         |        1368 |        1215 |        1603 |         101 |
      | scaleway war         |        2004 |        1683 |        2477 |         241 |
      | google europe-west-1 |        1023 |        1007 |        1058 |          15 |
      | digitalocean ams3    |         331 |         171 |     2506343 |      792437 |
      | digitalocean fra1    |        1105 |        1035 |        1236 |          61 |
      +----------------------+-------------+-------------+-------------+-------------+
    

About

Benchmark for S3 direct uploads for AWS, GCP and Scaleway

Resources

Stars

Watchers

Forks