# BeamDisk benchmarks

> Each chart replays one recorded run, sample by sample, with the Mac, the server and the network it ran on. The method is below.

## Results

### Sequential read and write

Reads and writes, each measured on its own, both run at over 99% of what 10 GbE can carry.

Reads and writes were measured separately, one after the other; the chart overlays the two runs.

- Read: 1,230 MB/s sustained, 1,237 MB/s peak
- Write: 1,236 MB/s sustained, 1,237 MB/s peak

The chart's ceiling is 1,237 MB/s: 10 Gigabit Ethernet Theoretical Max.

Ran on: Mac: Apple M4, 16 GB; macOS: 27.0.1; BeamDisk: 1.0 (development build); Storage: Linux LIO iSCSI target on Debian 13, SATA SSDs; Network: 10GBase-T, MTU 9000, one session; Test: 1 MiB blocks, 8 in flight, 8 GiB file on APFS; reads and writes in separate 180 s runs. Date: 2026-10-25.

### Random read and write

Random 16 KiB reads and writes, each measured on its own, at the memory page size of Macs with Apple Silicon.

Reads and writes were measured separately, one after the other; the chart overlays the two runs.

- Read: 20.2K IOPS sustained, 20.6K IOPS peak
- Write: 24.0K IOPS sustained, 24.4K IOPS peak

Ran on: Mac: Apple M4, 16 GB; macOS: 27.0.1; BeamDisk: 1.0 (development build); Storage: Linux LIO iSCSI target on Debian 13, SATA SSDs; Network: 10GBase-T, MTU 9000, one session; Test: 16 KiB blocks, 16 in flight for writes and 48 for reads, 2 GiB file on APFS; reads and writes in separate 180 s runs. Date: 2026-10-25.

### Mixed sequential

Reading and writing at the same time, BeamDisk moved 1,844 MB/s in all, about 1.5 times what one direction of 10 GbE can carry; reads took the larger share.

Reads and writes ran at the same time.

- Together (reads and writes, each second's sum): 1,844 MB/s sustained, 1,928 MB/s peak
- Read: 1,154 MB/s sustained, 1,210 MB/s peak
- Write: 690 MB/s sustained, 725 MB/s peak

The chart's ceiling is 1,237 MB/s: 10 Gigabit Ethernet Theoretical Max, each direction.

Both directions at once, 10 GbE carries 2,474 MB/s.

Ran on: Mac: Apple M4, 16 GB; macOS: 27.0.1; BeamDisk: 1.0 (development build); Storage: Linux LIO iSCSI target on Debian 13, SATA SSDs; Network: 10GBase-T, MTU 9000, one session; Test: 1 MiB blocks, 8 reads and 8 writes in flight at once, 8 GiB file on APFS, 180 s. Date: 2026-10-26.

### Mixed random, 70/30

A 70/30 mix of random 16 KiB reads and writes at the same time ran at 26.2K operations a second in all, more than either direction alone.

Reads and writes ran at the same time.

- Together (reads and writes, each second's sum): 26.2K IOPS sustained, 26.7K IOPS peak
- Read: 18.3K IOPS sustained, 18.8K IOPS peak
- Write: 7.8K IOPS sustained, 8.1K IOPS peak

Ran on: Mac: Apple M4, 16 GB; macOS: 27.0.1; BeamDisk: 1.0 (development build); Storage: Linux LIO iSCSI target on Debian 13, SATA SSDs; Network: 10GBase-T, MTU 9000, one session; Test: 16 KiB blocks at random offsets, 70% reads, 32 in flight, 2 GiB file on APFS, 180 s. Date: 2026-10-26.

### Time Machine: iSCSI vs SMB

The same first full backup of a Mac (71.4 GB, 1.8 million files) to the same SSD pool took 8 min 19 s over BeamDisk and 9 min 39 s over SMB: 14% less time.

- BeamDisk (iSCSI): 143 MB/s on average, 391 MB/s peak, finished in 8 min 19 s
- SMB: 123 MB/s on average, 355 MB/s peak, finished in 9 min 39 s

Ran on: Mac: Apple M4, 16 GB; macOS: 27.0.1; BeamDisk: 1.0 (development build); Storage: TrueNAS, SATA SSD pool, no SLOG; Network: 10GBase-T, MTU 9000, one session; Test: First full backup of the same Mac (71.4 GB of Time Machine's data, 1,815,793 files), minutes apart: to an empty BeamDisk disk, then to a new Time Machine share over SMB, both on the same pool. Date: 2026-10-22.

## Methodology

- **The path apps use.** Throughput (1 MB = 1,000,000 bytes) and operations per second are measured on the Mac, through a file on an APFS volume on a BeamDisk disk: the same path every app takes.
- **Nothing flattered.** Tests bypass the Mac's file cache, so reads come over the network. The data is random, so the server's compression can't shrink it, and every read test reads data written beforehand.
- **Sequential.** 1 MiB requests with 8 in flight on an 8 GiB file: reads and writes in separate runs of 180 seconds each, one after the other.
- **Random.** 16 KiB requests at random offsets, the memory page size of Macs with Apple Silicon, on a 2 GiB file: reads and writes in separate runs of 180 seconds each, writes with 16 in flight and reads with 48.
- **Mixed.** Reads and writes at the same time, for 180 seconds, each second's total their sum. Sequential: 1 MiB reads from one half of the 8 GiB file and 1 MiB writes to the other, 8 of each in flight. Random: 16 KiB requests at random offsets on the 2 GiB file, 70% of them reads, 32 in flight, the best total in a sweep from 8 to 64.
- **Time Machine.** A first full backup of the same Mac to an empty disk, once over BeamDisk and once over SMB, to the same pool on the same server, from the same Mac on the same network. Timed from the backup's start until Time Machine reports it finished.
- **The link.** 10 GbE carries 1,250 MB/s raw; after Ethernet, IP and TCP overhead, about 1,237 MB/s of data with the 9,000-byte jumbo frames these runs used (about 1,180 MB/s at the standard 1,500-byte MTU). The charts' ceiling is 1,237 MB/s. A single second can read a little above it: each request counts in the second it completes.
- **Run it yourself.** BeamDisk's Test Speed (a disk's Options menu → Test Speed…) runs sequential and random tests against your own server in about a minute.
