Table of Contents
bw_tcp - time data movement through TCP/IP sockets
bw_tcp [
-m <message size> ] [ -M <total bytes> ] [ -P <parallelism> ] [ -W <warmups> ] [ -N
<repetitions> ] server
bw_tcp -s
bw_tcp -S <server>
bw_tcp is a client/server program that moves
data over a TCP/IP socket. Nothing is done with the data on either side;
total bytes of data is moved in message size chunks.
bw_tcp has three
forms of usage: as a server (-s), as a client (bw_tcp localhost), and as
a shutdown (bw_tcp -S localhost).
The default amount of data is 10MB. The
client form may specify a different amount of data. Specifications may
end with ‘‘k’’ or ‘‘m’’ to mean kilobytes (* 1024) or megabytes (* 1024 * 1024).
Output format is Socket bandwidth using localhost: 2.32 MB/sec
This benchmark can move up to six times the requested memory
per process when run through the loopback device. There are two processes,
the sender and the receiver. Most Unix systems implement the read/write
system calls as a bcopy from/to kernel space to/from user space. Bcopy
will use 2-3 times as much memory bandwidth: there is one read from the
source and a write to the destionation. The write usually results in a
cache line read and then a write back of the cache line at some later point.
Memory utilization might be reduced by 1/3 if the processor architecture
implemented "load cache line" and "store cache line" instructions (as well
as getcachelinesize).
Funding for the development of this
tool was provided by Sun Microsystems Computer Corporation and Silicon
Graphics, Inc.
lmbench(8)
.
Carl Staelin and Larry McVoy
Comments,
suggestions, and bug reports are always welcome.
Table of Contents