README
1
2 BE SURE TO READ THE MANUAL. EVEN THOUGH IT MAY BE OUTDATED.
3
4 This is a brief readme file for the netperf TCP/UDP/sockets/etc
5 performance benchmark. This is here mostly as a boot-strap. The real
6 information is in the manual, which can be found in netperf.ps and
7 online from http://www.netperf.org/netperf/NetperfPage.html. The
8 sources, and a limited number of binaries, can be found from
9 ftp://ftp.cup.hp.com/dist/networking/benchmarks/netperf/ .
10
11 BE SURE TO READ THE MANUAL. EVEN THOUGH IT MAY BE OUTDATED.
12
13 There is a COPYRIGHT file included. It is called COPYING because that
14 is what autosomethingorother wanted. It is based on what the HP Legal
15 Eagles gave me. I am not sure if the legalese is clear, but the intent
16 is to say "Here is a benchmark. Use it in good health. Pass it along,
17 port it, enhance it. You didn't pay for this tool, so don't expect it
18 to be perfect ;-)" The rest of it is there to keep the layers happy...
19
20 While the copyright is pretty much in spirit an "open source" one, it
21 is not in letter - I never took the time to try to get it approved.
22 If you feel strongly about the license of the code you use and want
23 something under the GPL, consider netperf4:
24
25 http://www.netperf.org/svn/netperf4/trunk
26
27 Feel free to report netperf results in public forums, but please be
28 excruciatingly complete in your description of the test envorinment.
29 The old netperf database at:
30
31 http://www.netperf.org/netperf/NetperfPage.html
32
33 is no more - or rather the utilities for accessing it no longer run.
34 The data is still present in the tree, albeit _VERY_ old now.
35
36 There is an Internet mailing list devoted to netperf. It is called
37 netperf-talk and it is hosted on netperf.org. Subscription requests
38 should go to netperf-talk-request (a] netperf.org.
39
40 Please DO NOT SEND subscription requests to netperf-talk!
41
42 If you run into severe difficulties, or are just feeling chatty,
43 please feel free to drop some email to me - Rick Jones
44 <rick.jones2 (a] hp.com>. Be sure to include a meaningful subject lines.
45
46 happy benchmarking,
47 rick jones
48
49 BE SURE TO READ THE MANUAL. EVEN THOUGH IT MAY BE OUTDATED.
50
README.aix
1 Pseudo-random things about netperf on AIX:
2
3 While it _should_ not be necessary in the release bits, the rc bits
4 for netperf 2.4.0 required:
5
6 configure _may_ need:
7
8 CFLAGS="-qcpluscmt -lperfstat"
9
10 until such time as Rick Jones can figure-out or be told how to
11 automagically add those using the configure script (hint hint :)
12
13 The release bits should be OK without the above. Depending on the
14 name used to invoke the compiler, the -qmumble option may be implicit.
15
16 AIX include files have a VERY unfortuneate set of #define's in them
17 for phrases network oriented programs are QUITE likely to have in
18 their source - "rem_addr" and "rem_size" A "cousin" of the Netperf
19 Contributing Editor reports this interferes with --enable-dlpi
20 compilation and that it was also a problem for MySQL compiltion.
21 While we await IBM's APAR with bated breath, netperf has been kludged
22 to workaround this bug in IBM's include files. It has been reported
23 that a "PMR" 34940,212,848 has been submitted to IBM in relation to
24 this bug in their header files.
25
26 Coutesy of Jan Krueger of TUI Infotec, Germany we have a pointer to
27 a workaround for problems with compilation on AIX 6.1:
28
29 https://www-304.ibm.com/support/docview.wss?uid=isg1IV01736
30
31 when you get errors like:
32 config.status: creating src/netperf_version.h
33 gcc -DHAVE_CONFIG_H -I. -I.. -MT netlib.o -MD -MP -MF .deps/netlib.Tpo -c -o netlib.o netlib.c
34 In file included from /usr/include/sys/corral.h:25,
35 from /usr/include/libperfstat.h:28,
36 from netlib.h:679,
37 from netlib.c:166:
38 /usr/include/netinet/in6_var.h:65: error: array type has incomplete element type
39
README.hpux
1 A note about CPU utilization...
2
3 For HP-UX 11.0 <= system < 11.23 the configure script will select the
4 "pstat" CPU utilization mechanism. This mechanism is the familiar
5 HP-UX idle counter mechanism (for all incense and porpoises) and
6 requires calibration. See src/netcpu_pstat.c for all the details.
7
8 For HP-UX 11.23 >= system, the configure script will select the
9 "pstatnew" CPU utilization mechanism. 11.23 adds cycle counts for
10 user, kernel and interrupt modes to the idle cycle counter. As such,
11 it _should_ be possible to simply take the sum of the four and the
12 fractions and know how much time was spent in each mode.
13 HOWEVER... there is a bug in the accounting for interrupt cycles,
14 where interrupt cycles go missing. SOOO, since there is an accurate
15 way to know what the total number of cycles should have been over the
16 interval, and we know (ass-u-me) that the idle cycle counter is good
17 (since the pstat mechanism has tested that one OK), we will take the
18 ratio of idle to total cycles to compute CPU util.
19
20 We will still calculate fractions for user, kernel and interrupt, and
21 report them in debug (-d) output, but with a warning for interrupt
22 time. See src/netcpu_pstatnew.c for all the details.
23
24 Up through HP-UX 11.23 (aka 11iV2) if you enable burst mode, and
25 happen to send sub-MSS requests and/or responses you _cannot_ assume
26 that the packet per second rate on the wire will match the transaction
27 per second rate reported by netperf, even if you set TCP_NODELAY with
28 the test-specific -D option. The HP-UX 11.X TCP stack likely will be
29 generating some immediate 'standalone' ACKnowledgements which may not
30 be generated by other stacks. This has been reported to the HP-UX TCP
31 folks, and an announcement will be made when that issue is resolved.
32
README.osx
1 If you are reading this, it suggests you are using a version of
2 netperf in which the issue of file/directory name case insensitivity
3 in OSX has been worked-around by renaming the NetPerf and NetServer
4 directories to NetPerfDir and NetServerDir respectively.
5
README.ovms
1 February 11, 2003
2
3 At the time of the initial port, I was not aware of a make facility
4 for OpenVMS. So, I would just compile and link the various files by
5 hand:
6
7 $ cc netperf.c
8 $ cc netlib.c
9 $ cc netsh.c
10 $ cc nettest_bsd.c
11 $ cc netserver.c
12 $ link/exe=netperf netperf.obj,netsh.obj,netlib.obj,nettest_bsd.obj
13 $ link/exe=netserver netserver.obj,netsh.obj,netlib.obj,nettest_bsd.obj
14
15 Installation for OpenVMS has a few differences from installation under
16 say Unix. There is no inetd for VMS - however, there is the concept
17 of an adding an auxilliary service that seems quite similar.
18
19 To configure netperf for operation as an auxilliary service, you will
20 need to edit/use the netserver_run.com file and alter the "path" to
21 netserver accordingly. The version that ships is setup for where Rick
22 Jones did his initial porting work and most likely is not apropriate
23 for you :)
24
25 $ define sys$output sys$sysroot:[netperf]hello_service.log
26 $ define sys$error sys$sysroot:[netperf]hello_service.log
27 $ run sys$sysroot:[netperf]netserver.exe
28
29 Then it will be necessary to "define" netperf (netserver) as an
30 auxilliary service. This will need to be customized as apropriate for
31 your system
32
33 $ tcpip set service netserver -
34 _$ /port=12865 -
35 _$ /protocol=tcp -
36 _$ /user=system -
37 _$ /limit=48 -
38 _$ /process_name=netserver -
39 _$ /file=sys$sysroot:[netperf]netserver_run.com
40
41 And then it is necessary to enable the service:
42
43 $ tcpip enable service netserver
44
45 If you want to disable the service, you can issue the command
46
47 $ tcpip set noservice netserver
48
49 By default, OpenVMS is case-insensitive with commandlines, and will
50 downshift everything to lower case. This does not interact well with
51 netperf's use of command-line options like "-H" and "-h" with rather
52 different meanings.
53
54 To workaround that, the following defines are believed to be
55 sufficient.
56
57 $ define DECC$ARGV_PARSE_STYLE ENABLE
58 $ define DECC$EFS_CASE_PRESERVE ENABLE
59 $ define DECC$POSIX_SEEK_STREAM_FILE ENABLE
60 $ define DECC$EFS_CHARSET ENABLE
61 $ set process /parse_style=extended
62
63 I do not know if this will be something one can also do for the
64 netserver - presumeably one could put these things in the
65 netserver_run.com file (guessing). At present though I've not tried
66 that, and I'm also not sure that netserver has any upper-case options.
67
README.solaris
1 Until the release bits the following was true:
2
3 Until such time as Rick Jones can figure-out or be told how to make it
4 automagic in the configure script, prior to configure on solaris, you
5 may need:
6
7 CFLAGS="-lsocket -lnsl -lkstat"
8
9 and if you are trying to compile the SCTP tests:
10
11 CFLAGS="-lxnet -lsocket -lnsl -lkstat -D_XOPEN_SOURCE=500 -D__EXTENSIONS__"
12
13 as the release bits have a "smarter" configure script, and the SCTP
14 tests use libsctp, the above no longer applies. It should all just be
15 automagic (although for SCTP you still must --enable-sctp at configure
16 time)
17
18 Beware CPU util figures on anything before Solaris 10 that does not
19 say 100%, and still be a triffle cautious with Solaris 10 CPU util
20 reports. The CPU time accounting mechanisms either do not track time
21 spent servicing interrupts, or do so in parallel with time spent in
22 user/kernel/idle which means that some idle time isn't _really_ idle
23 time.
24
25 And beyond that, it is still not clear if the CPU utilization reported
26 on systems with hardware threading support (eg UltraSPARC-T1) is
27 really accurate even ignoring the issue with interrupt time. It is
28 likely that to be truely accurate, it is necessary to know how much
29 "real work" any one strand performed.
30
README.version
README.vmware
1 Compiling for VMware is somewhat like compiling for Windows - there is
2 a separate, standalone makefile one uses. In this case, it is
3 src/Makefile.uw. So, to build the bits, cd to src/ and make -f
4 Makefile.uw.
5
6 At present, the makefile is setup to use a number of the "none" files
7 - in particular netcpu_none.c. When/if we enable the "omni" tests
8 we'll perhaps see the addition of a number of other "none" files as
9 well.
10
11 Also, seems the way things are "run" under VMware is enough different
12 that the scripts, should you chose to use them, will need to be
13 modified. The initial set of patches make some arbitrary changes that
14 need to be re-worked with some "To run this under VMware uncomment
15 this line" or somesuch.
16
README.windows
1 It has been reported that versions of netperf have configured and
2 compiled under Cygwin.
3
4 It is also known that netperf has compiled using the Windows DDK.
5 Here is a skeleton of the instructions to do so:
6
7 Steps are:
8
9 A) Install the Windows driver developer kit (if not already done).
10
11 B) open a Cmd windows (i.e., a DOS box) for the target environment
12 (target OS version; free vs checked build; x86, AMD64, or IA64).
13 This is picked from the "Start\Developer Kits" path.
14
15 C) enter the src\NetPerfDir directory
16
17 D) Edit sources to enable any desired optional features (eg
18 -DWANT_HISTOGRAM) or to remove features which your version of
19 Windows might not support (eg -DHAVE_STRUCT_SOCKADDR_STORAGE)
20
21 E) while still in the src\NetperfDir directory type "build /cD".
22
23 F) Repeat steps C through E in src\NetServerDir
24
25 G) the target files will be in a directory like:
26 NetPerfDir\objchk_wnet_IA64\IA64, NetServerDir\objchk_wnet_IA64\IA64
27 NetPerfDir\objfre_wnet_x86\i386, or NetPerfDir\objfre_wnet_AMD64\amd64
28
29 NOTE: If any components of the path (ie the full names of the files,
30 including parent directories) contain spaces (eg "My Documents"),
31 build will charge off into the weeds.
32
33 If you do not want the corresponding features, edit the sources files
34 and remove the -Ds for WANT_DEMO, WANT_HISTOGRAM and/or WANT_INTERVALS
35
36 And if that weren't enough, it is also known that netperf has been
37 compiled using MS Visual Studio 2003. Here are the instructions from
38 the person who made that work (See Authors):
39
40 1. Under the PROJECT tab, <project name> PROPERTIES, LINKER folder,
41 Select COMMAND LINE and add WS2_32.lib in the whitespace labeled
42 Additional Options:
43
44
45 2. Under the PROJECT tab, <project name> PROPERTIES, C/C++ foleder,
46 Select Preprocessor, On the right, add DO_IPV6; at the end of the
47 Preprocessor Definitions whitespace.
48
49
50 He goes on to say:
51
52 NOTE: WHEN COMPLING NETSERVER, it works, but I got issued the
53 foillowing warnigns in my build:
54
55
56 ------ Rebuild All started: Project: netserver, Configuration: Debug Win32 ------
57
58 Deleting intermediate files and output files for project 'netserver', configuration 'Debug|Win32'.
59
60 Compiling...
61
62 nettest_bsd.c
63
64 g:\Program Files\netperf\netperf-2.4.1rc1\src\nettest_bsd.c(846) : warning C4267: 'function' : conversion from 'size_t' to 'int', possible loss of data
65
66 g:\Program Files\netperf\netperf-2.4.1rc1\src\nettest_bsd.c(1303) : warning C4267: 'function' : conversion from 'size_t' to 'int', possible loss of data
67
68 g:\Program Files\netperf\netperf-2.4.1rc1\src\nettest_bsd.c(2020) : warning C4267: 'function' : conversion from 'size_t' to 'int', possible loss of data
69
70 g:\Program Files\netperf\netperf-2.4.1rc1\src\nettest_bsd.c(5080) : warning C4267: 'function' : conversion from 'size_t' to 'int', possible loss of data
71
72 g:\Program Files\netperf\netperf-2.4.1rc1\src\nettest_bsd.c(5715) : warning C4267: 'function' : conversion from 'size_t' to 'int', possible loss of data
73
74 g:\Program Files\netperf\netperf-2.4.1rc1\src\nettest_bsd.c(6591) : warning C4267: 'function' : conversion from 'size_t' to 'int', possible loss of data
75
76 g:\Program Files\netperf\netperf-2.4.1rc1\src\nettest_bsd.c(8013) : warning C4267: 'function' : conversion from 'size_t' to 'int', possible loss of data
77
78 g:\Program Files\netperf\netperf-2.4.1rc1\src\nettest_bsd.c(11123) : warning C4267: 'function' : conversion from 'size_t' to 'int', possible loss of data
79
80 netsh.c
81
82 netserver.c
83
84 g:\Program Files\netperf\netperf-2.4.1rc1\src\netserver.c(457) : warning C4267: 'function' : conversion from 'size_t' to 'int', possible loss of data
85
86 netlib.c
87
88 g:\Program Files\netperf\netperf-2.4.1rc1\src\netlib.c(2470) : warning C4267: 'function' : conversion from 'size_t' to 'int', possible loss of data
89
90 g:\Program Files\netperf\netperf-2.4.1rc1\src\netlib.c(2480) : warning C4267: 'function' : conversion from 'size_t' to 'int', possible loss of data
91
92 netcpu_ntperf.c
93
94 inet_ntop.c
95
96 Generating Code...
97
98 Linking...
99
100 Build log was saved at "file://g:\Documents and Settings\Administrator\My Documents\Visual Studio Projects\netserver\Debug\BuildLog.htm"
101
102 netserver - 0 error(s), 11 warning(s)
103
104
105
106 ---------------------- Done ----------------------
107
108 Rebuild All: 1 succeeded, 0 failed, 0 skipped
109
110