Unraid SMB Performance Tuning

Understanding and Optimizing SMB Transfer Speeds on Unraid

When you build a home server, one of the most important measures of real-world performance is how quickly you can move files to and from the system. Whether you’re shuffling large media files, backing up workstations, or editing video over the network, your experience hinges on one core component: SMB transfer speeds.

SMB (Server Message Block) is the most widely used protocol for accessing shared folders on Unraid from Windows, macOS, and Linux. But actual speeds can vary dramatically depending on your hardware, network layout, Unraid settings, and even the types of files you’re moving.

This post explores why SMB speed sometimes falls short of expectations, how Unraid handles SMB under the hood, and what you can do to maximize performance.


Why SMB Transfer Speeds Matter

Fast local transfers don’t just save time—they shape how you use your server. With strong SMB performance, you can:

  • Stream high-bitrate media without buffering
  • Move terabytes of data in hours instead of days
  • Edit photos or videos directly from your NAS
  • Take advantage of 2.5GbE, 5GbE, or 10GbE networking
  • Perform workstation backups efficiently

If you’ve upgraded your network interfaces but aren’t seeing the numbers you expected, SMB settings and Unraid configuration often hold the key.


How Unraid Handles SMB Behind the Scenes

Unraid uses the Samba implementation of SMB. When you access a share from another device:

  1. Unraid maps the SMB user to a local filesystem user.
  2. Samba negotiates the SMB version with your client (SMB2 or SMB3).
  3. The request passes through Unraid’s filesystem layers (XFS/Btrfs) and, depending on your share settings, the mover, cache pool, or the array disks.
  4. File transfers flow through Unraid’s kernel, network stack, and ultimately your network interface.

It’s this multilayer architecture that influences why speeds can fluctuate.


Expected SMB Speed Ranges

1 GbE network (typical home setups)

  • Expected: 105–118 MB/s (near the 1Gb line rate)
  • Common real-world: 90–110 MB/s
  • If your cache is SSD: You’ll typically max out the link at ~112 MB/s
  • If writing directly to the array: 35–45 MB/s (due to Unraid’s parity write method)

2.5 GbE network

  • Expected: 260–280 MB/s
  • Array writes: Still 35–45 MB/s
  • Cache writes: 250–280 MB/s depending on SSDs and CPU

10 GbE network

  • Expected: 700–1,100 MB/s depending on SSD/NVMe
  • Array writes: Remain 35–45 MB/s unless using Turbo Write
  • Turbo Write: 80–120 MB/s depending on drives
  • NVMe cache: Can easily saturate 10GbE (1,000+ MB/s)

Why SMB Transfer Speeds May Be Slow

1. Parity Write Bottleneck (Most Common Issue)

Unraid’s array is designed for flexibility and data protection. Standard writes use a read-modify-write process to maintain parity, limiting speeds to ~35–45 MB/s—regardless of your network speed.

Solution:

  • Enable Turbo Write (reconstruct write mode)
  • Or write to a cache pool and let the mover relocate files later

2. Slow or Fragmented Cache Pool

If your cache is nearly full or heavily fragmented (common on older SATA SSDs), write speeds can tank.

Solution:

  • Keep your cache below 70% full
  • Use NVMe drives for heavy workflows
  • Periodically run a Btrfs balance

3. SMB Tuning Thresholds

Some defaults are conservative to ensure compatibility.

Useful settings in Settings → SMB → SMB Extras include:

socket options = TCP_NODELAY SO_RCVBUF=65536 SO_SNDBUF=65536 IPTOS_LOWDELAY
aio read size = 1
aio write size = 1
strict allocate = yes

These don’t guarantee miracles, but they often smooth out throughput spikes.

4. NIC or Switch Mismatch

If any device in the path negotiates at 100Mb/s or half-duplex, SMB performance collapses.

Check using:

Unraid Dashboard → Network → Interface Eth0 → Speed/Duplex

5. CPU Limitations During Encryption or Checksumming

If you use:

  • Encrypted shares
  • ZFS pools
  • High-speed NICs (5–10GbE)

…then your CPU becomes part of the bottleneck.

6. Client-Side Caching and SMB Settings

Windows has its own quirks, including:

  • Slow browsing if SMB signing is forced
  • Reduced throughput if offline files are enabled
  • Throttled transfers when Defender scans each block

Improving SMB Transfer Speeds in Unraid

1. Use a Cache Pool for All Frequent Writes

Move high-activity shares like these to SSD/NVMe:

  • appdata
  • domains
  • system
  • media
  • projects

Set them to:
Use cache → Yes or Prefer, depending on your workflow.

2. Enable Turbo Write

In Settings → Disk Settings → Tunable (md_write_method)
Choose: reconstruct write

Pros: Much faster array writes
Cons: Spins up all drives during transfers

3. Optimize Samba (SMB) Settings

Ensure SMB3 is in use. You can also enable multichannel if you have multiple NICs:

Settings → SMB → Enable SMB Multichannel → Yes

4. Tune Your Client Devices

For Windows:

  • Disable “Large Send Offload” only if you see inconsistent speeds
  • Ensure NIC drivers are updated
  • Turn off “Energy Efficient Ethernet” (EEE) on the NIC

5. Upgrade Your Network

Even moving from 1 GbE → 2.5 GbE brings instant gains. Managed switches like TP-Link, QNAP, and Mikrotik offer affordable upgrades.


Benchmarking SMB Speeds

A reliable workflow for testing involves:

  • A single large MKV file (20–40GB) for peak speed
  • A folder of hundreds of photos for small-file performance
  • Running tests both to the cache and directly to the array

Tools like LAN Speed Test, iPerf3, and Windows built-in Task Manager graphs help verify whether the bottleneck is network or disk-related.


SMB transfer speeds on Unraid aren’t just about network hardware—they’re influenced by caching, parity, drive type, filesystem tuning, and the Samba configuration. Once you understand how each layer contributes to performance, optimizing becomes a straightforward process.

If you set up:

  • A fast SSD or NVMe cache
  • Turbo Write for array operations
  • SMB tuning
  • A high-speed LAN (2.5–10GbE)