You don't need expensive hardware to prove your network works. You need a 50 GB test file.
Generate one today. Run the dd command or the fsutil script. Transfer it across your LAN. Watch the speed graph. You will learn more about your infrastructure in 10 minutes than in 10 years of looking at synthetic benchmarks.
Remember: Data doesn't lie, and a 50GB test file doesn't cheat.
dd if=/dev/zero of=testfile_50gb.dat bs=1M count=51200
Using a tool: Popular benchmarking tools like CrystalDiskMark (Windows), fio (Linux), or Blackmagic Disk Speed Test (macOS) can generate large test files automatically during their tests. 50 gb test file
time gzip -9 50GB_random.file
Result: On random 50GB data, ZSTD will finish 5x faster than Gzip with similar ratios.
NVMe SSDs have incredible burst speeds (7,000 MB/s), but after writing 20-30GB, the controller heats up and the SLC cache fills. The drive drops to "TLC direct write" speeds (1,500 MB/s).
Test: Use dd to write the 50GB file to the raw disk, bypassing OS cache. You don't need expensive hardware to prove your
dd if=50GB_test.file of=/dev/nvme0n1 bs=1M conv=fsync
Watch the speed graph. If it collapses after 25GB, your drive needs a heat sink.
Ideal for generating random-content files (slower but realistic):
$out = new-object byte[] 53687091200
(New-Object Random).NextBytes($out)
[System.IO.File]::WriteAllBytes('C:\test\50GB.bin', $out)
Warning: This will consume 50 GB of RAM temporarily – not recommended on systems with <64 GB RAM.
Better PowerShell approach for streaming: Generate one today
$file = [System.IO.File]::OpenWrite("C:\test\50GB.bin")
$buf = New-Object byte[](1024*1024) # 1 MB buffer
for($i=0; $i -lt 51200; $i++) $file.Write($buf, 0, $buf.Length)
$file.Close()
You might ask: Why not 10 GB? Why not 100 GB?
Thus, the 50 GB test file has become an informal industry standard for "serious but not insane" benchmarking.
# Create a 50GB file of random data (avoids compression tricks)
dd if=/dev/urandom of=50gb.test bs=1M count=51200
(On Windows, use fsutil or WinRAR with dummy data.)
dd if=/dev/urandom of=~/50GB_random.file bs=1M count=51200 status=progress
For modern Linux (faster than dd):
fallocate -l 50G ~/50GB_preallocated.file
The fallocate command instantly allocates 50GB without writing zeroes, perfect for quickly simulating a full drive.