diff --git benchmarks/Makefile benchmarks/Makefile index d6e006c51321..f3764e8873a4 100644 --- benchmarks/Makefile +++ benchmarks/Makefile @@ -88,6 +88,7 @@ SUBDIR += typometer SUBDIR += ubench SUBDIR += unixbench + SUBDIR += uperf SUBDIR += vegeta SUBDIR += webbench SUBDIR += wrk diff --git benchmarks/uperf/Makefile benchmarks/uperf/Makefile new file mode 100644 index 000000000000..4a63c1640a8f --- /dev/null +++ benchmarks/uperf/Makefile @@ -0,0 +1,45 @@ +# $FreeBSD$ + +PORTNAME= uperf +DISTVERSIONPREFIX= v +DISTVERSION= 1.0.6.20180221 +CATEGORIES= benchmarks + +MAINTAINER= 0mp@FreeBSD.org +COMMENT= Network performance tool to model and replay of networking patterns + +LICENSE= GPLv3 +LICENSE_FILE= ${WRKSRC}/COPYING + +USES= ssl + +USE_GITHUB= yes +GH_TAGNAME= 25ad9ff + +GNU_CONFIGURE= yes +CONFIGURE_ARGS+=--datadir=${DATADIR}/workloads + +OPTIONS_DEFINE= DOCS + +PORTDOCS= AUTHORS \ + README.md + +post-install: + ${MKDIR} ${STAGEDIR}${DATADIR}/tests + (cd ${WRKSRC}/tests && \ + ${COPYTREE_SHARE} . ${STAGEDIR}${DATADIR}/tests \ + "! -name Makefile.in ! -name Makefile.am ! -name Makefile") + +post-install-DOCS-on: + ${MKDIR} ${STAGEDIR}${DOCSDIR} +.for doc in ${PORTDOCS} + ${INSTALL_DATA} ${WRKSRC}/${doc} ${STAGEDIR}${DOCSDIR} +.endfor + ${MKDIR} ${STAGEDIR}${DOCSDIR}/docs + (cd ${WRKSRC}/docs && \ + ${COPYTREE_SHARE} . ${STAGEDIR}${DOCSDIR}/docs "! -name CNAME") + ${MKDIR} ${STAGEDIR}${DOCSDIR}/manual + (cd ${WRKSRC}/manual && \ + ${COPYTREE_SHARE} . ${STAGEDIR}${DOCSDIR}/manual "! -name Makefile") + +.include diff --git benchmarks/uperf/distinfo benchmarks/uperf/distinfo new file mode 100644 index 000000000000..204022ab3ac7 --- /dev/null +++ benchmarks/uperf/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1521153670 +SHA256 (uperf-uperf-v1.0.6.20180221-25ad9ff_GH0.tar.gz) = 4810a74f6e48483efd8d93016c35c50e01833f48799c1933940833629b7c79a8 +SIZE (uperf-uperf-v1.0.6.20180221-25ad9ff_GH0.tar.gz) = 234092 diff --git benchmarks/uperf/pkg-descr benchmarks/uperf/pkg-descr new file mode 100644 index 000000000000..9c9a1891f98a --- /dev/null +++ benchmarks/uperf/pkg-descr @@ -0,0 +1,24 @@ +Unified Performance Tool (or uperf for short) is a network performance tool +that supports modelling and replay of various networking patterns. +It represents a new kind of benchmarking tool (like filebench) where instead of +running a fixed benchmark or workload, a description (or model) of the workload +is provided and the tool generates the load according to the model. +By distilling the benchmark or workload into a model, you can now do various +things like change the scale of the workload, change different parameters, +change protocols, etc and analyse the effect of these changes on your model. +You can also study the effect of interleaving CPU activity, or think times or +the use of SSL instead of TCP among many other things. + +Some of the questions you could answer using uperf are: + * Bandwidth and latency (unidirectional and bi-directional) with different + protocols like TCP, UDP, SCTP, SSL + * Connection setup and teardown scalability for different protocols + * Effect of noise on ongoing network connections + * Does it matter if I use processes instead of threads to do network + communication? + * What is the L2 cache miss rate for connection setup? + * Is sendfilev(3EXT) (with one file) equivalent to sendfilev(3EXT)? + * Understand TCP, UDP, SCTP, SSL performance under a variety of conditions + * Test various TCP Congestion control algorithms + +WWW: http://uperf.org/ diff --git benchmarks/uperf/pkg-plist benchmarks/uperf/pkg-plist new file mode 100644 index 000000000000..964999944cbd --- /dev/null +++ benchmarks/uperf/pkg-plist @@ -0,0 +1,61 @@ +bin/uperf +%%DATADIR%%/workloads/connect.xml +%%DATADIR%%/workloads/iperf.xml +%%DATADIR%%/workloads/ldap.xml +%%DATADIR%%/workloads/netperf.xml +%%DATADIR%%/workloads/oltpnet.xml +%%DATADIR%%/workloads/oraclerac.xml +%%DATADIR%%/workloads/sctp.xml +%%DATADIR%%/workloads/specweb.xml +%%DATADIR%%/workloads/ssl.xml +%%DATADIR%%/workloads/telnet.xml +%%DATADIR%%/workloads/two-hosts.xml +%%DATADIR%%/tests/01simple_sctp.xml +%%DATADIR%%/tests/01simple_ssl.xml +%%DATADIR%%/tests/01simple_tcp.xml +%%DATADIR%%/tests/01simple_udp.xml +%%DATADIR%%/tests/02_2proto1group.xml +%%DATADIR%%/tests/02two_groups.xml +%%DATADIR%%/tests/3proto.xml +%%DATADIR%%/tests/a.xml +%%DATADIR%%/tests/accept-connect.xml +%%DATADIR%%/tests/accept-sctp.xml +%%DATADIR%%/tests/accept-tcp.xml +%%DATADIR%%/tests/canfail.xml +%%DATADIR%%/tests/disconnect_iter.xml +%%DATADIR%%/tests/friendliness.xml +%%DATADIR%%/tests/high_connection_count.xml +%%DATADIR%%/tests/mix_thr_proc.xml +%%DATADIR%%/tests/multi_proto_connect.xml +%%DATADIR%%/tests/parse_err.xml +%%DATADIR%%/tests/test-duration-process.xml +%%DATADIR%%/tests/test-rate.xml +%%DATADIR%%/tests/test-sendfile.xml +%%DATADIR%%/tests/test-sendfilev-chunked.xml +%%DATADIR%%/tests/test-sendfilev.xml +%%DATADIR%%/tests/test-ssize-flowop-count-dur.xml +%%DATADIR%%/tests/test-ssize-iperf.xml +%%DATADIR%%/tests/test.rb +%%DATADIR%%/tests/test.sh +%%DATADIR%%/tests/test_4groups.xml +%%DATADIR%%/tests/test_netperf.xml +%%DATADIR%%/tests/test_rds.xml +%%DATADIR%%/tests/test_send_recv.xml +%%DATADIR%%/tests/test_udp.xml +%%DATADIR%%/tests/throughput_sctp.xml +%%DATADIR%%/tests/unknown_proto.xml +%%PORTDOCS%%%%DOCSDIR%%/docs/index.html +%%PORTDOCS%%%%DOCSDIR%%/docs/manual.css +%%PORTDOCS%%%%DOCSDIR%%/docs/manual.html +%%PORTDOCS%%%%DOCSDIR%%/docs/uperf.css +%%PORTDOCS%%%%DOCSDIR%%/manual/bidirectional.xml +%%PORTDOCS%%%%DOCSDIR%%/manual/design_notes.txt +%%PORTDOCS%%%%DOCSDIR%%/manual/netperf.xml.txt +%%PORTDOCS%%%%DOCSDIR%%/manual/rds.txt +%%PORTDOCS%%%%DOCSDIR%%/manual/throughput.xml +%%PORTDOCS%%%%DOCSDIR%%/manual/uperf-default-output.txt +%%PORTDOCS%%%%DOCSDIR%%/manual/uperf-help.txt +%%PORTDOCS%%%%DOCSDIR%%/manual/uperf.css +%%PORTDOCS%%%%DOCSDIR%%/manual/uperf.html +%%PORTDOCS%%%%DOCSDIR%%/manual/uperf.xml +%%PORTDOCS%%%%DOCSDIR%%/manual/uperf.xsl