Is there a max throughput to Uppy?

We’re loving Uppy, especially the fault-tolerant uploads.

However, we’re seeing about 38Mb/s when uploading to a server where we can us Linux’s “scp” command to push about 115Mb/s. I’ve also test SFTP (I know this is just like scp) with the same results. My gut is Uppy can handle much more than a 38Mb/s upload speed.

Since I know the problem isn’t the internet line, my guess is a the Tus protocol must have some latency to it, but again, this looks like much more than I would expect.

I’m using the JS Dashboard on the Uppy client, and the Uppy server is running the PHP client that the docs recommend. It’s running on a dedicated test AWS server with 4 cores and 16GB of RAM, so it’s got the horsepower to spare.



Uppy uses whatever the browser provides. Tus requires some handshake requests before starting the upload and before resuming, but beyond that there is no client-side overhead. It should not be slower than a normal upload from the browser. It’s possible that PHP is not as fast as scp, though :slight_smile:

Do you see the same speed difference when doing browser uploads in some other way? For example, using the XHRUpload plugin for Uppy and a non-Tus PHP endpoint?

Thanks for the advice. It was a great idea to try XHRUpload, but unfortunately, the results were the same - about 38Mb/s upload speed. I’ve ruled out my PHP code, as once the upload starts, the client-server kicks in, and my code isn’t called again until the upload is complete. I can achieve much higher throughputs, but only when I upload multiple files at once through the Dashboard UI.

I’m using the PHP server from which appears to be a well-used library. I think my next step is to check with that author.

While PHP is not speedy, it certainly shouldn’t be performing that slowly. Its overhead is mostly in starting up, not in running code itself.

Thanks for you help,