Provided by: lmbench_3.0-a9-1.1_amd64 bug

NAME

       lmbench - system benchmarks

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.

       bw_file_rd    reading and summing of a file via the read(2) interface.

       bw_mem_cp     memory copy.

       bw_mem_rd     memory reading and summing.

       bw_mem_wr     memory writing.

       bw_mmap_rd    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.

       Latency numbers here should mostly be in microseconds per operation.

       lat_connect   the time it takes to establish a TCP/IP connection.

       lat_ctx       context switching; the number and size of processes is varied.

       lat_fcntl     fcntl file locking.

       lat_fifo      ``hot potato'' transaction through a UNIX FIFO.

       lat_fs        creating and deleting small files.

       lat_pagefault the time it takes to fault in a page from a file.

       lat_mem_rd    memory read latency (accurate to the  ~2-5  nanosecond  range,  reported  in
                     nanoseconds).

       lat_mmap      time to set up a memory mapping.

       lat_ops       basic  processor  operations,  such  as integer XOR, ADD, SUB, MUL, DIV, and
                     MOD, and float ADD, MUL, DIV, and double ADD, MUL, DIV.

       lat_pipe      ``hot potato'' transaction through a Unix pipe.

       lat_proc      process creation times (various sorts).

       lat_rpc       ``hot potato'' transaction through Sun RPC over UDP or TCP.

       lat_select    select latency

       lat_sig       signal installation and  catch  latencies.   Also  protection  fault  signal
                     latency.

       lat_syscall   non trivial entry into the system.

       lat_tcp       ``hot potato'' transaction through TCP.

       lat_udp       ``hot potato'' transaction through UDP.

       lat_unix      ``hot potato'' transaction through UNIX sockets.

       lat_unix_connect
                     the time it takes to establish a UNIX socket connection.

OTHER MEASUREMENTS

       mhz           processor cycle time

       tlb           TLB size and TLB miss latency

       line          cache line size (in bytes)

       cache         cache statistics, such as line size, cache sizes, memory parallelism.

       stream        John McCalpin's stream benchmark

       par_mem       memory  subsystem  parallelism.   How many requests can the memory subsystem
                     service in parallel, which may depend on the location of  the  data  in  the
                     memory hierarchy.

       par_ops       basic processor operation parallelism.

SEE ALSO

       bargraph(1),  graph(1),  lmbench(3),  results(3),  timing(3), bw_file_rd(8), bw_mem_cp(8),
       bw_mem_wr(8),   bw_mmap_rd(8),   bw_pipe(8),   bw_tcp(8),   bw_unix(8),    lat_connect(8),
       lat_ctx(8), lat_fcntl(8), lat_fifo(8), lat_fs(8), lat_http(8), lat_mem_rd(8), lat_mmap(8),
       lat_ops(8),  lat_pagefault(8),  lat_pipe(8),   lat_proc(8),   lat_rpc(8),   lat_select(8),
       lat_sig(8),  lat_syscall(8),  lat_tcp(8),  lat_udp(8),  lmdd(8),  par_ops(8),  par_mem(8),
       mhz(8), tlb(8), line(8), cache(8), stream(8)

ACKNOWLEDGEMENT

       Funding for the development of these tools  was  provided  by  Sun  Microsystems  Computer
       Corporation.

       A large number of people have contributed to the testing and development of lmbench.

COPYING

       The  benchmarking  code is distributed under the GPL with additional restrictions, see the
       COPYING file.

AUTHOR

       Carl Staelin and Larry McVoy

       Comments, suggestions, and bug reports are always welcome.

(c)1994-2000 Larry McVoy and Carl Staelin     $Date$                                   LMBENCH(8)