Large files
Download speed test files, and how to read the result
Files of random, incompressible data from 10 MB to 2 GB, for measuring throughput from a terminal or a browser. The smaller ones are served from Cloudflare's cache at the data centre nearest you.
The files
| Size | Served from | Good for |
|---|---|---|
| 10 MB | Edge cache | Slow or mobile connections |
| 100 MB | Edge cache | Most home and office connections |
| 250 MB | Edge cache | Fast connections; supports range requests |
| 1 GB | Streamed from storage | Sustained transfers and gigabit links |
| 2 GB | Streamed from storage | Long-running transfers |
Measure it
curl reports the average rate itself; nothing is saved to disk.
# macOS and Linux
curl -o /dev/null -s -w "%{speed_download} bytes/s in %{time_total}s\n" https://files.hexaqa.com/size/100mb.bin
# Windows (PowerShell or Command Prompt)
curl.exe -o NUL -s -w "%{speed_download} bytes/s in %{time_total}s\n" https://files.hexaqa.com/size/100mb.bin
Divide bytes per second by 125,000 for megabits per second, the unit providers advertise. 12,500,000 bytes/s is 100 Mbit/s.
Reading the number
Use a big enough file
A connection ramps up over the first seconds. If the download takes under ten seconds, use the next size up.
Run it three times
The first request for a file may come from further away before the nearest data centre has cached it. Take the median of several runs.
It is your path, not a website
The result is your connection to Cloudflare's nearest data centre. A slow site elsewhere can still be slow for reasons on its side.
Random bytes on purpose
Zeros can be compressed in transit and flatter the result. These files are random, so the rate is the real one.
Testing an app rather than a connection?
To see how your own software behaves with a slow or broken download, the generator can throttle a transfer
(/slow?bps=50000), cut it off half way while promising the full length (/truncate), or
omit the length entirely (/no-content-length). See the generator for all
of them, and large file upload testing for the other direction.
Questions
How do I test my download speed with a file?
Run curl -o /dev/null -s -w "%{speed_download}" URL on a file of 100 MB or more, several times.
Why is the result lower with a small file?
The connection is still speeding up when a small file finishes. Use 100 MB or more on a fast link.
What does a download speed test measure?
Your whole path to the server, here Cloudflare's nearest data centre, not any particular website.
Why random data?
Compressible data can arrive faster than the real bandwidth allows. Random bytes cannot be compressed.
Keep going
1 GB test file Size ladder → Range requests →
More from Learning
Guides and references for test data, file handling and AI evals. All free, no sign-up. See the full hub.