1. Why isn't upload unlimited?#
To understand this better, we need to go over a few basics: when you download a file on your seedbox, write operations are generated (the downloaded file is written to the hard drive). When a file is shared (seeded), it is first read from the hard drive (which generates read operations), then sent via p2p to the remote user.
Upload works in a very particular way on seedboxes: since each seedbox seeds multiple torrents at the same time, to several different users around the globe, this generates what is called "random" reading on the disks. It is impossible to predict in advance which part of a file will be read and when, which rules out any kind of caching.
In addition, read operations very quickly become a priority over write operations (writes are placed in a buffer). However, it is precisely these write operations (our clients' downloads) that matter the most: everyone wants their file to be downloaded as fast as possible, so they can find it on Plex, or on their FTP.
For the vast majority of our users, the upload speed is not an important metric: 95% of our users download less than 20GB of data per day on their seedbox. To maintain a positive ratio, they therefore need to upload at least 20GB of data per day as well. That amounts to barely an average speed of about 2mbps over 24h.
We have therefore made the choice to prioritize what matters most to 95% of our users: download speed. This means upload has to be reduced, to leave room for download operations.
2. Upload speed management at My-Seedbox#
To allow all our users to find their way around, and to maintain reasonable upload speeds without impacting the quality of our services, we use several techniques:
- Aggressive caching of files being read
- SSD caching of pending writes
- Real time analysis of the load on our infrastructure, with upload speeds adjusted accordingly
- Implementation of blocked upload periods during peak times (evenings), compensated by an unrestricted period during the night.
Concretely, what does this mean?#
Quite simply that the upload speed is not fixed. It changes throughout the day (and night), depending on the time, and the load on our infrastructure. It can sometimes be limited (if many downloads are in progress on the node hosting your seedbox), and sometimes boosted (burst period), if the infrastructure is not under heavy load.
3. Time slots & maximum speeds:#
Here is the list of time slots, along with the maximum speeds associated with them.
- 01h00 to 2h59: 100Mbps (regulated)
- 03h00 to 7h59: 100Mbps (unrestricted)
- 08h00 to 11h59: 100Mbps (regulated)
- 12h00 to 17h59: 50Mbps (regulated) (Weekend: Upload Blocked)
- 18h00 to 23h59: Upload blocked
- 00h00 to 00h59: Upload blocked
Regulated speed: A time slot during which seedbox speeds may vary, depending on the load of the host where the seedbox is located. Under normal conditions (low activity), the maximum speed is applied to the seedbox upload. However, in case of high load (weekends in particular), this speed may be lowered.
Upload blocked: A time slot from 6pm to 1am (7 hours) during which seedbox upload is completely blocked. This is a period of very high activity, during which the infrastructure is used both by downloads and by Plex streaming. So that both of these activities can enjoy the best possible performance, upload is entirely blocked.
The period from 03h00 to 7h59 is not subject to any upload restrictions: the speed is 100mbps on all the seedboxes in our fleet. This slot alone allows a theoretical transfer of 225GB of data.
Maximum upload quota per day.#
Taking into account the time slots below, it is possible to calculate the maximum amount of data that can be uploaded to our infrastructure each day:
- 01h00 to 2h59: 90GB max (variable)
- 03h00 to 7h59: 225GB
- 08h00 to 11h59: 180GB max (regulated)
- 12h00 to 17h59: 135GB max (regulated) (Weekend: 0GB)
- 18h00 to 23h59: 0GB
- 00h00 to 00h59: 0GB
It is therefore possible to upload between 225GB (minimum) and 630GB (maximum) on our seedboxes per day.