First pass at new iperf3 documentation, implemented in reStructuredText.
Building and deploying the documentation requires some infrastructure that's not part of this tree.
Этот коммит содержится в:
родитель
6a3cd13e36
Коммит
14741dcbb4
1
.gitignore
поставляемый
1
.gitignore
поставляемый
@ -10,6 +10,7 @@ autom4te.cache
|
||||
config/test-driver
|
||||
config.log
|
||||
config.status
|
||||
docs/_build
|
||||
libtool
|
||||
src/.deps
|
||||
src/.libs
|
||||
|
33
docs/building.rst
Обычный файл
33
docs/building.rst
Обычный файл
@ -0,0 +1,33 @@
|
||||
Building iperf3
|
||||
===============
|
||||
|
||||
Building iperf3, as with most tools of this type, is a fairly
|
||||
straightforward operation. The instructions in this section assume
|
||||
that the source distribution has already been unpacked.
|
||||
|
||||
Prerequisites
|
||||
-------------
|
||||
|
||||
iperf3 requires few (if any) dependencies on common operating
|
||||
systems. The only known prerequesites are listed here.
|
||||
|
||||
* ``libuuid``: ``libuuid`` is not installed by default on Debian /
|
||||
Ubuntu Linux systems. To install this, use this command before
|
||||
building iperf3:
|
||||
|
||||
``apt-get install uuid-dev``
|
||||
|
||||
Building
|
||||
--------
|
||||
|
||||
In many cases, iperf3 can be built and installed as follows:
|
||||
|
||||
``./configure && make && make install``
|
||||
|
||||
In some cases, configuration might fail. If this happens, it might
|
||||
help to run ``./bootstrap.sh`` first from the top-level directory.
|
||||
|
||||
By default, the ``libiperf`` library is built in both shared and
|
||||
static forms. Either can be suppressed by using the
|
||||
``--disabled-shared`` or ``--disable-static`` configure-time options.
|
||||
|
272
docs/conf.py
Обычный файл
272
docs/conf.py
Обычный файл
@ -0,0 +1,272 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# iperf documentation build configuration file, created by
|
||||
# sphinx-quickstart on Fri Mar 28 14:58:40 2014.
|
||||
#
|
||||
# This file is execfile()d with the current directory set to its
|
||||
# containing dir.
|
||||
#
|
||||
# Note that not all possible configuration values are present in this
|
||||
# autogenerated file.
|
||||
#
|
||||
# All configuration values have a default; values that are commented out
|
||||
# serve to show the default.
|
||||
|
||||
import sys
|
||||
import os
|
||||
import sphinx_bootstrap_theme
|
||||
|
||||
# If extensions (or modules to document with autodoc) are in another directory,
|
||||
# add these directories to sys.path here. If the directory is relative to the
|
||||
# documentation root, use os.path.abspath to make it absolute, like shown here.
|
||||
#sys.path.insert(0, os.path.abspath('.'))
|
||||
|
||||
# -- General configuration ------------------------------------------------
|
||||
|
||||
# If your documentation needs a minimal Sphinx version, state it here.
|
||||
#needs_sphinx = '1.0'
|
||||
|
||||
# Add any Sphinx extension module names here, as strings. They can be
|
||||
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
|
||||
# ones.
|
||||
extensions = []
|
||||
|
||||
# Add any paths that contain templates here, relative to this directory.
|
||||
templates_path = ['_esnet/templates']
|
||||
|
||||
# The suffix of source filenames.
|
||||
source_suffix = '.rst'
|
||||
|
||||
# The encoding of source files.
|
||||
#source_encoding = 'utf-8-sig'
|
||||
|
||||
# The master toctree document.
|
||||
master_doc = 'index'
|
||||
|
||||
# General information about the project.
|
||||
project = u'iperf'
|
||||
copyright = u'2014, ESnet'
|
||||
|
||||
# The version info for the project you're documenting, acts as replacement for
|
||||
# |version| and |release|, also used in various other places throughout the
|
||||
# built documents.
|
||||
#
|
||||
# The short X.Y version.
|
||||
version = '3.0.3'
|
||||
# The full version, including alpha/beta/rc tags.
|
||||
release = '3.0.3'
|
||||
|
||||
# The language for content autogenerated by Sphinx. Refer to documentation
|
||||
# for a list of supported languages.
|
||||
#language = None
|
||||
|
||||
# There are two options for replacing |today|: either, you set today to some
|
||||
# non-false value, then it is used:
|
||||
#today = ''
|
||||
# Else, today_fmt is used as the format for a strftime call.
|
||||
#today_fmt = '%B %d, %Y'
|
||||
|
||||
# List of patterns, relative to source directory, that match files and
|
||||
# directories to ignore when looking for source files.
|
||||
exclude_patterns = ['_build', '_esnet']
|
||||
|
||||
# The reST default role (used for this markup: `text`) to use for all
|
||||
# documents.
|
||||
#default_role = None
|
||||
|
||||
# If true, '()' will be appended to :func: etc. cross-reference text.
|
||||
#add_function_parentheses = True
|
||||
|
||||
# If true, the current module name will be prepended to all description
|
||||
# unit titles (such as .. function::).
|
||||
#add_module_names = True
|
||||
|
||||
# If true, sectionauthor and moduleauthor directives will be shown in the
|
||||
# output. They are ignored by default.
|
||||
#show_authors = False
|
||||
|
||||
# The name of the Pygments (syntax highlighting) style to use.
|
||||
pygments_style = 'sphinx'
|
||||
|
||||
# A list of ignored prefixes for module index sorting.
|
||||
#modindex_common_prefix = []
|
||||
|
||||
# If true, keep warnings as "system message" paragraphs in the built documents.
|
||||
#keep_warnings = False
|
||||
|
||||
|
||||
# -- Options for HTML output ----------------------------------------------
|
||||
|
||||
# The theme to use for HTML and HTML Help pages. See the documentation for
|
||||
# a list of builtin themes.
|
||||
html_theme = 'bootstrap'
|
||||
|
||||
# Theme options are theme-specific and customize the look and feel of a theme
|
||||
# further. For a list of options available for each theme, see the
|
||||
# documentation.
|
||||
html_theme_options = {
|
||||
"navbar_pagenav": False,
|
||||
"nosidebar": False,
|
||||
"navbar_class": "navbar",
|
||||
"navbar_site_name": "Section",
|
||||
"navbar_links": [
|
||||
("Index", "genindex"),
|
||||
("ESnet", "https://www.es.net", True),
|
||||
],
|
||||
}
|
||||
|
||||
# Add any paths that contain custom themes here, relative to this directory.
|
||||
html_theme_path = sphinx_bootstrap_theme.get_html_theme_path()
|
||||
|
||||
# The name for this set of Sphinx documents. If None, it defaults to
|
||||
# "<project> v<release> documentation".
|
||||
#html_title = None
|
||||
|
||||
# A shorter title for the navigation bar. Default is the same as html_title.
|
||||
#html_short_title = None
|
||||
|
||||
# The name of an image file (relative to this directory) to place at the top
|
||||
# of the sidebar.
|
||||
html_logo = "_esnet/static/logo-esnet-ball-sm.png"
|
||||
|
||||
|
||||
# The name of an image file (within the static path) to use as favicon of the
|
||||
# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
|
||||
# pixels large.
|
||||
html_favicon = "_esnet/static/favicon.ico"
|
||||
html_context = {
|
||||
"github_url": "https://github.com/esnet/iperf",
|
||||
}
|
||||
|
||||
# Add any paths that contain custom static files (such as style sheets) here,
|
||||
# relative to this directory. They are copied after the builtin static files,
|
||||
# so a file named "default.css" will overwrite the builtin "default.css".
|
||||
html_static_path = ['_static']
|
||||
|
||||
# Add any extra paths that contain custom files (such as robots.txt or
|
||||
# .htaccess) here, relative to this directory. These files are copied
|
||||
# directly to the root of the documentation.
|
||||
#html_extra_path = []
|
||||
|
||||
# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
|
||||
# using the given strftime format.
|
||||
#html_last_updated_fmt = '%b %d, %Y'
|
||||
|
||||
# If true, SmartyPants will be used to convert quotes and dashes to
|
||||
# typographically correct entities.
|
||||
#html_use_smartypants = True
|
||||
|
||||
# Custom sidebar templates, maps document names to template names.
|
||||
html_sidebars = {'index': None, 'search': None, '*': ['localtoc.html']}
|
||||
|
||||
# Additional templates that should be rendered to pages, maps page names to
|
||||
# template names.
|
||||
#html_additional_pages = {}
|
||||
|
||||
# If false, no module index is generated.
|
||||
#html_domain_indices = True
|
||||
|
||||
# If false, no index is generated.
|
||||
#html_use_index = True
|
||||
|
||||
# If true, the index is split into individual pages for each letter.
|
||||
#html_split_index = False
|
||||
|
||||
# If true, links to the reST sources are added to the pages.
|
||||
#html_show_sourcelink = True
|
||||
|
||||
# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
|
||||
#html_show_sphinx = True
|
||||
|
||||
# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
|
||||
#html_show_copyright = True
|
||||
|
||||
# If true, an OpenSearch description file will be output, and all pages will
|
||||
# contain a <link> tag referring to it. The value of this option must be the
|
||||
# base URL from which the finished HTML is served.
|
||||
#html_use_opensearch = ''
|
||||
|
||||
# This is the file name suffix for HTML files (e.g. ".xhtml").
|
||||
#html_file_suffix = None
|
||||
|
||||
# Output file base name for HTML help builder.
|
||||
htmlhelp_basename = 'iperfdoc'
|
||||
|
||||
|
||||
# -- Options for LaTeX output ---------------------------------------------
|
||||
|
||||
latex_elements = {
|
||||
# The paper size ('letterpaper' or 'a4paper').
|
||||
#'papersize': 'letterpaper',
|
||||
|
||||
# The font size ('10pt', '11pt' or '12pt').
|
||||
#'pointsize': '10pt',
|
||||
|
||||
# Additional stuff for the LaTeX preamble.
|
||||
#'preamble': '',
|
||||
}
|
||||
|
||||
# Grouping the document tree into LaTeX files. List of tuples
|
||||
# (source start file, target name, title,
|
||||
# author, documentclass [howto, manual, or own class]).
|
||||
latex_documents = [
|
||||
('index', 'iperf.tex', u'iperf Documentation',
|
||||
u'ESnet', 'manual'),
|
||||
]
|
||||
|
||||
# The name of an image file (relative to this directory) to place at the top of
|
||||
# the title page.
|
||||
#latex_logo = None
|
||||
|
||||
# For "manual" documents, if this is true, then toplevel headings are parts,
|
||||
# not chapters.
|
||||
#latex_use_parts = False
|
||||
|
||||
# If true, show page references after internal links.
|
||||
#latex_show_pagerefs = False
|
||||
|
||||
# If true, show URL addresses after external links.
|
||||
#latex_show_urls = False
|
||||
|
||||
# Documents to append as an appendix to all manuals.
|
||||
#latex_appendices = []
|
||||
|
||||
# If false, no module index is generated.
|
||||
#latex_domain_indices = True
|
||||
|
||||
|
||||
# -- Options for manual page output ---------------------------------------
|
||||
|
||||
# One entry per manual page. List of tuples
|
||||
# (source start file, name, description, authors, manual section).
|
||||
man_pages = [
|
||||
('index', 'iperf', u'iperf Documentation',
|
||||
[u'ESnet'], 1)
|
||||
]
|
||||
|
||||
# If true, show URL addresses after external links.
|
||||
#man_show_urls = False
|
||||
|
||||
|
||||
# -- Options for Texinfo output -------------------------------------------
|
||||
|
||||
# Grouping the document tree into Texinfo files. List of tuples
|
||||
# (source start file, target name, title, author,
|
||||
# dir menu entry, description, category)
|
||||
texinfo_documents = [
|
||||
('index', 'iperf', u'iperf Documentation',
|
||||
u'ESnet', 'iperf', 'One line description of project.',
|
||||
'Miscellaneous'),
|
||||
]
|
||||
|
||||
# Documents to append as an appendix to all manuals.
|
||||
#texinfo_appendices = []
|
||||
|
||||
# If false, no module index is generated.
|
||||
#texinfo_domain_indices = True
|
||||
|
||||
# How to display URL addresses: 'footnote', 'no', or 'inline'.
|
||||
#texinfo_show_urls = 'footnote'
|
||||
|
||||
# If true, do not generate a @detailmenu in the "Top" node's menu.
|
||||
#texinfo_no_detailmenu = False
|
182
docs/dev.rst
Обычный файл
182
docs/dev.rst
Обычный файл
@ -0,0 +1,182 @@
|
||||
iperf3 Development
|
||||
==================
|
||||
|
||||
The iperf3 project is hosted on GitHub at:
|
||||
|
||||
http://github.com/esnet/iperf
|
||||
|
||||
This site includes the source code repository, issue tracker, and
|
||||
wiki.
|
||||
|
||||
Mailing Lists
|
||||
-------------
|
||||
|
||||
The developer list for iperf3 is: iperf3-dev@googlegroups.com.
|
||||
Information on joining the mailing list can be found at:
|
||||
|
||||
http://groups.google.com/group/iperf-dev
|
||||
|
||||
There is, at the moment, no mailing list for user questions, although
|
||||
a low volume of inquiries on the developer list is probably
|
||||
acceptable. If necessary, a user-oriented mailing list might be
|
||||
created in the future.
|
||||
|
||||
Bug Reports
|
||||
-----------
|
||||
|
||||
Before submitting a bug report, try checking out the latest version of
|
||||
the code, and confirm that it's not already fixed. Then submit to the
|
||||
iperf3 issue tracker on GitHub:
|
||||
|
||||
https://github.com/esnet/iperf/issues
|
||||
|
||||
**Note:** Issues submitted to the old iperf3 issue tracker on Google
|
||||
Code will be ignored.
|
||||
|
||||
Changes from iperf 2.x
|
||||
----------------------
|
||||
|
||||
New options (not necessarily complete, please refer to the manual page
|
||||
for a complete list of iperf3 options)::
|
||||
|
||||
-V, --verbose more detailed output than before
|
||||
-J, --json output in JSON format
|
||||
-Z, --zerocopy use a 'zero copy' sendfile() method of sending data
|
||||
-O, --omit N omit the first n seconds (to ignore slowstart)
|
||||
-T, --title str prefix every output line with this string
|
||||
-F, --file name xmit/recv the specified file
|
||||
-A, --affinity n/n,m set CPU affinity (Linux and FreeBSD only)
|
||||
-k, --blockcount #[KMG] number of blocks (packets) to transmit (instead
|
||||
of -t or -n)
|
||||
-L, --flowlabel set IPv6 flow label (Linux only)
|
||||
|
||||
Changed flags::
|
||||
|
||||
-C, --linux-congestion set congestion control algorithm (Linux only)
|
||||
(-Z in iperf2)
|
||||
|
||||
|
||||
Deprecated flags (currently no plans to support)::
|
||||
|
||||
-d, --dualtest Do a bidirectional test simultaneously
|
||||
-r, --tradeoff Do a bidirectional test individually
|
||||
-T, --ttl time-to-live, for multicast (default 1)
|
||||
-x, --reportexclude [CDMSV] exclude C(connection) D(data) M(multicast)
|
||||
S(settings) V(server) reports
|
||||
-y, --reportstyle C report as a Comma-Separated Values
|
||||
|
||||
Also deprecated is the ability to set the options via environment
|
||||
variables.
|
||||
|
||||
Known Issues
|
||||
------------
|
||||
|
||||
The following problems are notable known issues, which are probably of
|
||||
interest to a large fraction of users or have high impact for some
|
||||
users, and for which issues have already been filed in the issue
|
||||
tracker. These issues are either open (indicating no solution
|
||||
currently exists) or closed with the notation that no further attempts
|
||||
to solve the problem are currently being made:
|
||||
|
||||
* UDP performance: iperf2/iperf3 both only are only about 50% as fast
|
||||
as nuttcp in UDP mode. We are looking into this, but in the
|
||||
meantime, if you want to get UDP above 5Gbps, we recommend using
|
||||
nuttcp instead (http://www.nuttcp.net/). (Issue #55)
|
||||
|
||||
* Interval reports on high-loss networks: The way iperf3 is currently
|
||||
implemented, the sender write command will block until the entire
|
||||
block has been written. This means that it might take several
|
||||
seconds to send a full block if the network has high loss, and the
|
||||
interval reports will have widely varying interval times. We are
|
||||
trying to determine the best solution to this, but in the meantime,
|
||||
try using a smaller block size if you get strange interval reports.
|
||||
For example, try ``-l 4K``. (Issue #125)
|
||||
|
||||
* The ``-Z`` flag sometimes hangs on OSX. (Issue #129)
|
||||
|
||||
* On OpenBSD, the server seems to require a ``-4`` argument, implying
|
||||
that it can only be used with IPv4. (Issue #108)
|
||||
|
||||
* When specifying the TCP buffer size using the ``-w`` flag on Linux,
|
||||
Linux doubles the value you pass in. (You can see this using
|
||||
iperf3's debug flag.) But then the CWND does not actually ramp up
|
||||
to the doubled value, but only to about 75% of the doubled
|
||||
value. This appears to be by design. (Issue #145)
|
||||
|
||||
There are, of course, many other open and closed issues in the issue
|
||||
tracker.
|
||||
|
||||
Versioning
|
||||
----------
|
||||
|
||||
iperf version numbers use three-part release numbers: *MAJOR.MINOR.PATCH*
|
||||
|
||||
The developers increment the:
|
||||
|
||||
* *MAJOR* version when making incompatible API changes,
|
||||
|
||||
* *MINOR* version when adding functionality in a backwards-compatible manner, and
|
||||
|
||||
* *PATCH* version when making backwards-compatible bug fixes.
|
||||
|
||||
This is roughly along the line of `Semantic Versioning <http://semver.org/>`_.
|
||||
|
||||
Release Engineering Checklist
|
||||
-----------------------------
|
||||
|
||||
1. Update the ``README`` and ``RELEASE_NOTES`` files to be accurate. Make sure
|
||||
that the "Known Issues" section of the ``README`` file is up to date.
|
||||
|
||||
2. Compose a release announcement. Most of the release announcement
|
||||
can be written before tagging.
|
||||
|
||||
3. Starting from a clean source tree (be sure that ``git status`` emits
|
||||
no output)::
|
||||
|
||||
vi src/version.h # update the strings IPERF_VERSION and IPERF_VERSION_DATE
|
||||
vi configure.ac # update version parameter in AC_INIT
|
||||
vi src/iperf3.1 # update manpage revision date if needed
|
||||
vi src/libiperf.3 # update manpage revision date if needed
|
||||
git commit -a
|
||||
./bootstrap.sh # regenerate configure script, etc.
|
||||
git commit -a
|
||||
git push
|
||||
|
||||
./make_release tag # this creates a tag in the local repo that matches the version.h version
|
||||
git push --tags # Push the new tag to the GitHub repo
|
||||
./make_release tar # create tarball and compute SHA256 hash
|
||||
|
||||
Doing the above steps on CentOS 6 (with its somewhat older
|
||||
autotools / libtools suite) is preferred; newer systems generate
|
||||
``configure`` and ``Makefile`` scripts that tend to rebuild
|
||||
themselves rather frequently. We might be able to address this
|
||||
problem (and graduate to newer autotools) by using
|
||||
``AC_MAINTAINER_MODE`` but there's a fair amount of religion
|
||||
associated with this.
|
||||
|
||||
4. Stage the tarball (and a file containing the SHA256 hash) to the
|
||||
download site. Currently this is located on ``stats.es.net``.
|
||||
|
||||
5. From another host, test the link in the release announcement by
|
||||
downloading a fresh copy of the file and verifying the SHA256
|
||||
checksum.
|
||||
|
||||
6. Also verify (with file(1)) that the tarball is actually a gzipped
|
||||
tarball.
|
||||
|
||||
7. For extra points, actually try downloading, compiling, and
|
||||
smoke-testing the results of the tarball on all supported
|
||||
platforms.
|
||||
|
||||
8. Plug the SHA256 checksum into the release announcement.
|
||||
|
||||
9. Send the release announcement (PGP-signed) to these addresses:
|
||||
|
||||
* iperf-dev@googlegroups.com
|
||||
|
||||
* iperf-users@lists.sourceforge.net
|
||||
|
||||
* perfsonar-user@internet2.edu
|
||||
|
||||
* perfsonar-dev@internet2.edu
|
||||
|
62
docs/index.rst
Обычный файл
62
docs/index.rst
Обычный файл
@ -0,0 +1,62 @@
|
||||
.. iperf documentation master file, created by
|
||||
sphinx-quickstart on Fri Mar 28 14:58:40 2014.
|
||||
You can adapt this file completely to your liking, but it should at least
|
||||
contain the root `toctree` directive.
|
||||
|
||||
iperf3
|
||||
======
|
||||
|
||||
iperf is a tool for active measurements of the maximum achievable
|
||||
bandwidth on IP networks. It supports tuning of various parameters
|
||||
related to timing, protocols, and buffers. For each test it reports
|
||||
the bandwidth, loss, and other parameters.
|
||||
|
||||
This version, sometimes referred to as iperf3, is a redesign of an
|
||||
original version developed at NLANR/DAST. iperf3 is a new
|
||||
implementation from scratch, with the goal of a smaller, simpler code
|
||||
base, and a library version of the functionality that can be used in
|
||||
other programs. iperf3 also incorporates a number of features found in
|
||||
other tools such as nuttcp and netperf, but were missing from the
|
||||
original iperf. These include, for example, a zero-copy mode and
|
||||
optional JSON output. Note that iperf3 is *not* backwards compatible
|
||||
with the original iperf.
|
||||
|
||||
Primary development for iperf3 takes place on CentOS Linux, FreeBSD,
|
||||
and MacOS X. At this time, these are the only officially supported
|
||||
platforms, however there have been some reports of success with
|
||||
OpenBSD, Android, and other Linux distributions.
|
||||
|
||||
iperf3 is principally developed by ESnet / Lawrence Berkleley National
|
||||
Laboratory. It is released under a three-clause BSD license.
|
||||
|
||||
The iperf3 project is hosted on GitHub at:
|
||||
|
||||
https://github.com/esnet/iperf
|
||||
|
||||
The GitHub project site includes the source code repository, issue
|
||||
tracker.
|
||||
|
||||
This documention tree is hosted on GitHub pages at:
|
||||
|
||||
https://esnet.github.io/iperf/
|
||||
|
||||
For more information on obtaining iperf3, see :ref:`obtaining`.
|
||||
|
||||
Contents:
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
|
||||
news
|
||||
obtaining
|
||||
building
|
||||
invoking
|
||||
dev
|
||||
|
||||
Indices and tables
|
||||
==================
|
||||
|
||||
* :ref:`genindex`
|
||||
* :ref:`modindex`
|
||||
* :ref:`search`
|
||||
|
199
docs/invoking.rst
Обычный файл
199
docs/invoking.rst
Обычный файл
@ -0,0 +1,199 @@
|
||||
Invoking iperf3
|
||||
===============
|
||||
|
||||
iperf3 includes a manual page listing all of the command-line options.
|
||||
The manual page is the most up-to-date reference to the various flags and parameters.
|
||||
|
||||
For sample command line usage, see:
|
||||
|
||||
http://fasterdata.es.net/performance-testing/network-troubleshooting-tools/iperf-and-iperf3/
|
||||
|
||||
Using the default options, iperf3 is meant to show typical well
|
||||
designed application performance. "Typical well designed application"
|
||||
means avoiding artificial enhancements that work only for testing
|
||||
(such as ``splice()``-ing the data to ``/dev/null``). iperf3 does
|
||||
also have flags for "extreme best case" optimizations but they must be
|
||||
explicitly activated. These flags include the ``-Z`` (``--zerocopy``)
|
||||
and ``-A`` (``--affinity``) options.
|
||||
|
||||
iperf3 Manual Page
|
||||
------------------
|
||||
|
||||
This section contains a plaintext rendering of the iperf3 manual page.
|
||||
It is presented here only for convenience; the authoritative iperf3
|
||||
manual page is included in the source tree and installed along with
|
||||
the executable.
|
||||
|
||||
::
|
||||
|
||||
IPERF(1) User Manuals IPERF(1)
|
||||
|
||||
|
||||
|
||||
NAME
|
||||
iperf3 − perform network throughput tests
|
||||
|
||||
SYNOPSIS
|
||||
iperf3 ‐s [ options ]
|
||||
iperf3 ‐c server [ options ]
|
||||
|
||||
|
||||
DESCRIPTION
|
||||
iperf3 is a tool for performing network throughput measurements. It
|
||||
can test either TCP or UDP throughput. To perform an iperf3 test the
|
||||
user must establish both a server and a client.
|
||||
|
||||
|
||||
GENERAL OPTIONS
|
||||
‐p, ‐‐port n
|
||||
set server port to listen on/connect to to n (default 5201)
|
||||
|
||||
‐f, ‐‐format
|
||||
[kmKM] format to report: Kbits, Mbits, KBytes, MBytes
|
||||
|
||||
‐i, ‐‐interval n
|
||||
pause n seconds between periodic bandwidth reports; default is
|
||||
1, use 0 to disable
|
||||
|
||||
‐F, ‐‐file name
|
||||
client‐side: read from the file and write to the network,
|
||||
instead of using random data; server‐side: read from the network
|
||||
and write to the file, instead of throwing the data away
|
||||
|
||||
‐A, ‐‐affinity n/n,m
|
||||
Set the CPU affinity, if possible (Linux and FreeBSD only). On
|
||||
both the client and server you can set the local affinity by
|
||||
using the n form of this argument (where n is a CPU number). In
|
||||
addition, on the client side you can override the server’s
|
||||
affinity for just that one test, using the n,m form of argument.
|
||||
Note that when using this feature, a process will only be bound
|
||||
to a single CPU (as opposed to a set containing potentialy mul‐
|
||||
tiple CPUs).
|
||||
|
||||
‐B, ‐‐bind host
|
||||
bind to a specific interface
|
||||
|
||||
‐V, ‐‐verbose
|
||||
give more detailed output
|
||||
|
||||
‐J, ‐‐json
|
||||
output in JSON format
|
||||
|
||||
‐‐logfile file
|
||||
send output to a log file.
|
||||
|
||||
‐d, ‐‐debug
|
||||
emit debugging output. Primarily (perhaps exclusively) of use
|
||||
to developers.
|
||||
|
||||
‐v, ‐‐version
|
||||
show version information and quit
|
||||
|
||||
‐h, ‐‐help
|
||||
show a help synopsis
|
||||
|
||||
|
||||
SERVER SPECIFIC OPTIONS
|
||||
‐s, ‐‐server
|
||||
run in server mode
|
||||
|
||||
‐D, ‐‐daemon
|
||||
run the server in background as a daemon
|
||||
|
||||
‐I, ‐‐pidfile file
|
||||
write a file with the process ID, most useful when running as a
|
||||
daemon.
|
||||
|
||||
|
||||
CLIENT SPECIFIC OPTIONS
|
||||
‐c, ‐‐client host
|
||||
run in client mode, connecting to the specified server
|
||||
|
||||
‐‐sctp use SCTP rather than TCP (FreeBSD and Linux)
|
||||
|
||||
‐u, ‐‐udp
|
||||
use UDP rather than TCP
|
||||
|
||||
‐b, ‐‐bandwidth n[KM]
|
||||
set target bandwidth to n bits/sec (default 1 Mbit/sec for UDP,
|
||||
unlimited for TCP). If there are multiple streams (‐P flag),
|
||||
the bandwidth limit is applied separately to each stream. You
|
||||
can also add a ’/’ and a number to the bandwidth specifier.
|
||||
This is called "burst mode". It will send the given number of
|
||||
packets without pausing, even if that temporarily exceeds the
|
||||
specified bandwidth limit.
|
||||
|
||||
‐t, ‐‐time n
|
||||
time in seconds to transmit for (default 10 secs)
|
||||
|
||||
‐n, ‐‐bytes n[KM]
|
||||
number of bytes to transmit (instead of ‐t)
|
||||
|
||||
‐k, ‐‐blockcount n[KM]
|
||||
number of blocks (packets) to transmit (instead of ‐t or ‐n)
|
||||
|
||||
‐l, ‐‐length n[KM]
|
||||
length of buffer to read or write (default 128 KB for TCP, 8KB
|
||||
for UDP)
|
||||
|
||||
‐P, ‐‐parallel n
|
||||
number of parallel client streams to run
|
||||
|
||||
‐R, ‐‐reverse
|
||||
run in reverse mode (server sends, client receives)
|
||||
|
||||
‐w, ‐‐window n[KM]
|
||||
TCP window size / socket buffer size (this gets sent to the
|
||||
server and used on that side too)
|
||||
|
||||
‐M, ‐‐set‐mss n
|
||||
set TCP maximum segment size (MTU ‐ 40 bytes)
|
||||
|
||||
‐N, ‐‐no‐delay
|
||||
set TCP no delay, disabling Nagle’s Algorithm
|
||||
|
||||
‐4, ‐‐version4
|
||||
only use IPv4
|
||||
|
||||
‐6, ‐‐version6
|
||||
only use IPv6
|
||||
|
||||
‐S, ‐‐tos n
|
||||
set the IP ’type of service’
|
||||
|
||||
‐L, ‐‐flowlabel n
|
||||
set the IPv6 flow label (currently only supported on Linux)
|
||||
|
||||
‐Z, ‐‐zerocopy
|
||||
Use a "zero copy" method of sending data, such as sendfile(2),
|
||||
instead of the usual write(2).
|
||||
|
||||
‐O, ‐‐omit n
|
||||
Omit the first n seconds of the test, to skip past the TCP slow‐
|
||||
start period.
|
||||
|
||||
‐T, ‐‐title str
|
||||
Prefix every output line with this string.
|
||||
|
||||
‐C, ‐‐linux‐congestion algo
|
||||
Set the congestion control algorithm (linux only).
|
||||
|
||||
|
||||
AUTHORS
|
||||
Iperf was originally written by Mark Gates and Alex Warshavsky. Man
|
||||
page and maintence by Jon Dugan <jdugan at x1024 dot net>. Other con‐
|
||||
tributions from Ajay Tirumala, Jim Ferguson, Feng Qin, Kevin Gibbs,
|
||||
John Estabrook <jestabro at ncsa.uiuc.edu>, Andrew Gallatin <gallatin
|
||||
at gmail.com>, Stephen Hemminger <shemminger at linux‐foundation.org>
|
||||
|
||||
|
||||
SEE ALSO
|
||||
libiperf(3), https://github.com/esnet/iperf
|
||||
|
||||
|
||||
|
||||
ESnet February 2014 IPERF(1)
|
||||
|
||||
The iperf3 manual page will typically be installed in manual
|
||||
section 1.
|
||||
|
63
docs/news.rst
Обычный файл
63
docs/news.rst
Обычный файл
@ -0,0 +1,63 @@
|
||||
iperf3 Project News
|
||||
===================
|
||||
|
||||
2014-03-26: iperf-3.0.3 released
|
||||
---------------------------------
|
||||
|
||||
| http://stats.es.net/software/iperf-3.0.3.tar.gz
|
||||
| ``79daf3e5e5c933b2fc4843d6d21c98d741fe39b33ac05bd7a11c50d321a2f59d iperf-3.0.3.tar.gz``
|
||||
|
||||
This is the second maintenance release of iperf 3.0, containing a few bug fixes and enhancements, notably:
|
||||
|
||||
* The structure of the JSON output is more consistent between the
|
||||
cases of one stream and multiple streams.
|
||||
|
||||
* The example programs once again build correctly.
|
||||
|
||||
* A possible buffer overflow related to error output has been fixed.
|
||||
(This is not believed to be exploitable.)
|
||||
|
||||
More information on changes can be found in the RELEASE_NOTES
|
||||
file in the source distribution.
|
||||
|
||||
2014-03-10: iperf-3.0.2 released
|
||||
---------------------------------
|
||||
|
||||
| http://stats.es.net/software/iperf-3.0.2.tar.gz
|
||||
| ``3c379360bf40e6ac91dfc508cb43fefafb4739c651d9a8d905a30ec99095b282 iperf-3.0.2.tar.gz``
|
||||
|
||||
**Note:** Due to a mistake in the release process, the distribution tarball referred to above is actually not compressed, despite its ``.tar.gz`` extension. Instead it is an uncompressed tar archive. The file checksum is correct, as are the file contents.
|
||||
|
||||
This version is a maintenance release that
|
||||
fixes a number of bugs, many reported by users, adds a few minor
|
||||
enhancements, and tracks the migration of the iperf3 project to
|
||||
GitHub. Of particular interest:
|
||||
|
||||
* Build / runtime fixes for CentOS 5, MacOS 10.9, and FreeBSD.
|
||||
|
||||
* TCP snd_cwnd output on Linux in the default output format.
|
||||
|
||||
* libiperf is now built as both a shared and static library; by
|
||||
default, the iperf3 binary links to the shared library.
|
||||
|
||||
More information on changes can be found in the RELEASE_NOTES
|
||||
file in the source distribution.
|
||||
|
||||
2014-02-28: iperf migrated to GitHub
|
||||
-------------------------------------
|
||||
|
||||
The new project page can be found at:
|
||||
|
||||
https://github.com/esnet/iperf
|
||||
|
||||
2014-01-10: iperf-3.0.1 released
|
||||
---------------------------------
|
||||
|
||||
| http://stats.es.net/software/iperf-3.0.1.tar.gz
|
||||
| ``32b419ef634dd7670328c3cecc158babf7d706bd4b3d248cf95965528a20e614 iperf-3.0.1.tar.gz``
|
||||
|
||||
During development, there were various distributions of the source
|
||||
code unofficially released carrying a 3.0.0 version number. Because
|
||||
of the possiblity for confusion, this first public release of iperf3
|
||||
was numbered 3.0.1.
|
||||
|
41
docs/obtaining.rst
Обычный файл
41
docs/obtaining.rst
Обычный файл
@ -0,0 +1,41 @@
|
||||
.. _obtaining:
|
||||
|
||||
Obtaining iperf3
|
||||
================
|
||||
|
||||
Binary Distributions
|
||||
--------------------
|
||||
|
||||
Binary packages are available for several supported operating systems:
|
||||
|
||||
* FreeBSD: `Ports Collection <http://freshports.org/benchmarks/iperf3>`_
|
||||
* Fedora / CentOS:
|
||||
|
||||
Source Distributions
|
||||
--------------------
|
||||
|
||||
Source distributions of iperf are available as compressed (gzip)
|
||||
tarballs at:
|
||||
|
||||
http://stats.es.net/software/
|
||||
|
||||
**Note:** Due to a software packaging error, the 3.0.2 release
|
||||
tarball was not compressed, even though its filename had a ``.tar.gz``
|
||||
suffix.
|
||||
|
||||
Source Code Repository
|
||||
----------------------
|
||||
|
||||
The iperf3 project is hosted on GitHub at:
|
||||
|
||||
https://github.com/esnet/iperf
|
||||
|
||||
The iperf3 source code repository can be checked out directly from
|
||||
GitHub using:
|
||||
|
||||
``git clone https://github.com/esnet/iperf.git``
|
||||
|
||||
Primary development for iperf3 takes place on CentOS 6 Linux, FreeBSD,
|
||||
and MacOS X. At this time, these are the only officially supported
|
||||
platforms, however there have been some reports of success with
|
||||
OpenBSD, Android, and other Linux distributions.
|
Загрузка…
x
Ссылка в новой задаче
Block a user