Faster Upload to Linode server?

Hi, I have a photo sharing app in which my users are uploading hundreds of 5mb to 10mb images. My question is:

Is there a way to improve my users' upload speed?

I understand that this has a lot to do my users' internet speed / bandwidth and ISP. But is there anything that I could do on my end? Would putting a server closer to them help? i.e. My linode is in Fremont right now. Would putting my linode in Atlanta increase upload speed for my users in the east significantly or is this negligible?

6 Replies

If your users are closer to Atlanta, that would not be a bad decision as long as the port filtering in that datacenter will not affect you. Dallas might also be a good option. Their ISP and geographical distance are the biggest variables, and there is nothing you can do to overcome their ISP's restrictions on throughput caps.

How fast are images uploading now? What is that speed in relation to the maximum upstream throughput of users' network connections? My home Internet connection has 1 Mb/s upstream, so at the absolute best, I'd be looking at 80 seconds for a 10 MB file. It's probably not worth worrying if it's taking 90 seconds…

FWIW, I'm in New Jersey with FIOS (75Mbit/s download speed). Doing some tests with https://www.linode.com/speedtest/ to see how quickly I can download:

Freemont: 9.21 MB/s

Dallas: 8.80MB/s

Atlanta: 9.02MB/s

Newark: 9.84MB/s

London: 7.42MB/s

Tokyo: 7.86MB/s

Now all of them peaked at 9.95MB/s (basically maxed out my bandwidth) and sustained that rate, but different DC's took longer to get up to that speed, so for downloads of <100Mbytes this ramp up will have greater impact.

(Of course this was download, rather than upload, but I expect the same to be true)

I am going to setup an upload server in Atlanta to see if it helps my US-east users.

In addition, is there a bandwidth limit for uploading into a linode? Is this limited by network or disk write?

I sometimes have 50 concurrent users uploading 5-10mb photos into the same node. Is this going to slow things down?

Disk IO can be a potential bottleneck. If you have one of the larger Linodes and don't mind doing a bit of tweaking with your web app, you could use a tmpfs mount for uploads. Since tmpfs is used to create RAM disks, files would be uploaded to RAM, and you can add in a way (e.g. cron job, or via PHP when uploads complete) to copy files to disk. Whether or not this is a good idea depends on your web app, however since RAM is faster than storage, you'd reduce latency caused by disk writes.

Generally, more users means more latency, however whether or not a measly 50 users will affect things depends on Linode's network. My best guess, no, but don't take my word for it.

Linux uses write caching, so it's highly unlikely that disk IO would be a limitation.

Reply

Please enter an answer
Tips:

You can mention users to notify them: @username

You can use Markdown to format your question. For more examples see the Markdown Cheatsheet.

> I’m a blockquote.

I’m a blockquote.

[I'm a link] (https://www.google.com)

I'm a link

**I am bold** I am bold

*I am italicized* I am italicized

Community Code of Conduct