LMBENCH

NAME

DESCRIPTION

lmbench
is a series of micro benchmarks intended to measure basic operating
system and hardware system metrics. The benchmarks fall into three
general classes: bandwidth, latency, and ``other''.

Most of the
lmbench
benchmarks use a standard timing harness described in timing(3)
and have a few standard options:
parallelism,
warmup,
and
repetitions.
Parallelism
specifies the number of benchmark processes to run in parallel.
This is primarily useful when measuring the performance of SMP
or distributed computers and can be used to evaluate the system's
performance scalability.
Warmup
is the number of minimum number of microseconds the benchmark should
execute the benchmarked capability before it begins measuring
performance. Again this is primarily useful for SMP or distributed
systems and it is intended to give the process scheduler time to
"settle" and migrate processes to other processors. By measuring
performance over various
warmup
periods, users may evaulate the scheduler's responsiveness.
Repetitions
is the number of measurements that the benchmark should take. This
allows lmbench to provide greater or lesser statistical strength to
the results it reports. The default number of
repetitions
is 11.

BANDWIDTH MEASUREMENTS

Data movement is fundamental to the performance on most computer systems.
The bandwidth measurements are intended to show how the system can move
data. The results of the bandwidth metrics can be compared but care
must be taken to understand what it is that is being compared. The
bandwidth benchmarks can be reduced to two main components: operating
system overhead and memory speeds. The bandwidth benchmarks report
their results as megabytes moved per second but please note that the
data moved is not necessarily the same as the memory bandwidth
used to move the data. Consult the individual man pages for more
information.

Each of the bandwidth benchmarks is listed below with a brief overview of the
intent of the benchmark.

reading and summing of a file via the memory mapping mmap(2) interface.

bw_pipe

reading of data via a pipe.

bw_tcp

reading of data via a TCP/IP socket.

bw_unix

reading data from a UNIX socket.

LATENCY MEASUREMENTS

Control messages are also fundamental to the performance on most
computer systems. The latency measurements are intended to show how fast
a system can be told to do some operation. The results of the
latency metrics can be compared to each other
for the most part. In particular, the
pipe, rpc, tcp, and udp transactions are all identical benchmarks
carried out over different system abstractions.