LMbench
github.com
What it is
LMbench is a free, self-hosted benchmark suite for measuring system performance, with a focus on data movement and its cost. Its workload areas include memory, disks, file systems, networks, pipes, virtual memory, processor operations, cache, and TLB behavior. Latency measurements report time and CPU cycles per operation; bandwidth results include megabytes per second and CPU cycles per megabyte. Other benchmarks cover null process execution time, context switching, network transfers, socket operations, and large-transfer throughput. The command line can run benchmarks, and `make see` compares results with system results included in the repository. Documentation names UNIX/POSIX, Linux, FreeBSD, NetBSD, Solaris, SunOS, AIX, HP-UX, IRIX, OSF/1, and partial Windows NT support. Linux and Windows are listed as platforms. LMbench is GPL-2.0 licensed and costs nothing. Its documentation warns that other system activity, especially CPU cache and cycle effects, can affect measurements, and recommends multiple runs with output comparison.
Spec sheet
- Purpose
- The repository describes lmbench as a benchmark release that can be run with `make results`.Read 9 Oct 2026 · github.com
- Free plan
- YesRead 23 Sep 2026 · github.com
- License
- The repository identifies its license as GPL-2.0.Read 9 Oct 2026 · github.com
- Areas measured
- Listed benchmark areas include memory, disks, file systems, networks, pipes, and virtual memory systems.Read 8 Oct 2026 · github.com
- Benchmark coverage
- The change log lists benchmarks for cache-line size, effective TLB size, cache hierarchy, operation latency, memory bandwidth, and SysV semaphore latency.Read 9 Oct 2026 · github.com
- Benchmark focus
- The benchmark documentation describes its theme as measuring data movement and its cost.Read 8 Oct 2026 · github.com
- CLI or automation
- YesRead 23 Sep 2026 · github.com
- Compare results
- The README says `make see` displays results compared with the other system results included in the repository.Read 9 Oct 2026 · github.com
- Comparison database
- YesRead 23 Sep 2026 · github.com
- Included comparison data
- The README refers to other system results included in the repository and documents listing results by operating system.Read 9 Oct 2026 · github.com
- Latency and bandwidth
- It lists time and CPU cycles per operation for latency, and MB per second and CPU cycles per MB for bandwidth.Read 8 Oct 2026 · github.com
- Linux distributions
- The README mentions Euler and CentOS and says to uncomment lines 250 and 251 for those operating systems.Read 9 Oct 2026 · github.com
- LoongArch
- The README gives `make results OS=mips64el` as the command to run the benchmark on LoongArch.Read 9 Oct 2026 · github.com
- Maker information
- The repository is under Intel's GitHub organization; the repository page provides no maker description or website.Read 9 Oct 2026 · github.com
- Measurement caveat
- The README warns that benchmarks can be affected by other activity on the system, particularly CPU cache and CPU cycle effects.Read 8 Oct 2026 · github.com
- Memory testing
- The change log says the `stream` benchmark reports memory bandwidth using kernels from John McCalpin's STREAM and STREAM version 2 benchmarks.Read 9 Oct 2026 · github.com
- Network measurements
- Network measurements listed include transfers per second, CPU cycles per transfer, socket/bind/close per second, and throughput for large transfers.Read 8 Oct 2026 · github.com
- Operating systems
- UNIX/POSIX; Linux; FreeBSD; NetBSD; Solaris; SunOS; AIX; HP-UX; IRIX; OSF/1; Windows NT (partial)Read 23 Sep 2026 · github.com
- Platform references
- The benchmark documentation lists all Unix systems and Windows NT among its systems, and the README gives a LoongArch run command using OS=mips64el.Read 8 Oct 2026 · github.com
- Process measurements
- The benchmark list includes null process execution time and context switching.Read 8 Oct 2026 · github.com
- Release availability
- The repository's tags page states that there are no releases there.Read 9 Oct 2026 · github.com
- Repeat measurements
- The README recommends several runs and comparing their output because benchmarks can be affected by other activity on the system, especially CPU cache and CPU cycle effects.Read 9 Oct 2026 · github.com
- Repeat runs
- The README recommends running benchmarks several times and comparing the output.Read 8 Oct 2026 · github.com
- Run comparisons
- The README says `make see` compares results with other system results included in the repository.Read 8 Oct 2026 · github.com
- Timing harness
- The change log describes `benchmp()` as a timing harness for measuring system performance under a fixed load, with controls including parallel processes, warmup, and repetitions.Read 9 Oct 2026 · github.com
- Workload areas
- Bandwidth; latency; processor operations; memory hierarchy; cache; TLB; process and file-system operations; networkingRead 23 Sep 2026 · github.com
Plans and prices
Strong points and limits
Strong points
- Covers memory, storage, networking, and processor operations.
- Reports latency and bandwidth in multiple measures.
- Command-line runs can compare against included system results.
- Includes a comparison database and automation support.
Limits
- Windows NT support is partial.
- Other system activity can affect results.
- The repository has no releases listed on its tags page.
Who it suits
LMbench suits people who need command-line measurements across memory, processor, storage, and network workloads. It is relevant to users working on the listed Unix-like systems or Linux, and those checking partial Windows NT support.
Verdict
LMbench covers a wide range of system measurements and offers command-line comparison with results included in its repository. Repeat runs are advisable because activity on the system can affect the output.
Where Specifiction places it
- PC benchmark tools#14 of 708.5
- PC Benchmark Software#16 of 738.3