We recommend two methods for testing AWS S3 upload speeds for BYOS buckets.  For the most accurate results, use large file sizes, run the test multiple times, and perform the test during business hours to take AWS server load into account.


Browser

To test AWS upload speed using a browser:


  1. Navigate to AWS:

    https://aws.amazon.com/

  2. Login using the credentials for your BYOS storage account.
  3. If you would like to use a separate bucket for speed testing, click Create Bucket and create a bucket in the same region as the one used in your Morro system.
  4. Navigate to the bucket.


  5. Click Upload, then click Add Files, and select the test file (at least 100 MB or larger if you have a lot of upload bandwidth).


  6. AWS will not provide transfer speed statistics, so prepare to time the transfer manually, then click Upload.



Command Line with s3cmd

The s3cmd utility can be used to test AWS upload speed when a GUI is not available.  It requires Python to be installed, and officially supports Linux and Mac.  It may also run on Windows with Python installed.


On Linux, it may be available in your distribution via the package manager.  For example, in Ubuntu, you can use the following to install s3cmd:


sudo apt update && sudo apt install s3cmd


It can also be downloaded here:


https://s3tools.org/s3cmd


Once it is installed, configure it as follows (custom values in bold).  Settings that can use the default values have been omitted.


user@server:~$ s3cmd --configure

<omitted>

Access key and Secret key are your identifiers for Amazon S3. Leave them empty for using the env variables.
Access Key: <your access key>
Secret Key: <your secret key>

<omitted>


To test transfer speed, create a large file (at least 100 MB or larger if you have a lot of upload bandwidth), then run the following command (below example is Linux, 100MB is a large file, test0 is the name of the bucket):


user@server:~$ time s3cmd put 100MB s3://dl-us-west-1
upload: '100MB' -> 's3://dl-us-west-1/100MB'  [part 1 of 7, 15MB] [1 of 1]
 15728640 of 15728640   100% in   10s  1411.04 kB/s  done
upload: '100MB' -> 's3://dl-us-west-1/100MB'  [part 2 of 7, 15MB] [1 of 1]
 15728640 of 15728640   100% in   10s  1416.75 kB/s  done
upload: '100MB' -> 's3://dl-us-west-1/100MB'  [part 3 of 7, 15MB] [1 of 1]
 15728640 of 15728640   100% in   10s  1452.63 kB/s  done
upload: '100MB' -> 's3://dl-us-west-1/100MB'  [part 4 of 7, 15MB] [1 of 1]
 15728640 of 15728640   100% in   10s  1454.92 kB/s  done
upload: '100MB' -> 's3://dl-us-west-1/100MB'  [part 5 of 7, 15MB] [1 of 1]
 15728640 of 15728640   100% in   10s  1456.17 kB/s  done
upload: '100MB' -> 's3://dl-us-west-1/100MB'  [part 6 of 7, 15MB] [1 of 1]
 15728640 of 15728640   100% in   10s  1451.68 kB/s  done
upload: '100MB' -> 's3://dl-us-west-1/100MB'  [part 7 of 7, 10MB] [1 of 1]
 10485760 of 10485760   100% in    7s  1446.46 kB/s  done


real    1m12.157s
user    0m1.487s
sys     0m0.152s


If your system does not have the time command, you can measure the time manually.