github.com/dmaizel/tests@v0.0.0-20210728163746-cae6a2d9cee8/metrics/network/README.md (about)

     1  # Kata Containers `iperf3` and `nuttcp` network metrics
     2  
     3  * [Performance tools](#performance-tools)
     4  * [Networking tests](#networking-tests)
     5  * [Running the tests](#running-the-tests)
     6  * [Expected results](#expected-results)
     7  
     8  Kata Containers provides a series of network performance tests. Running these provides
     9  a basic reference for measuring  network essentials like bandwidth, jitter,
    10  packet per second throughput, and latency.
    11  
    12  ## Performance tools
    13  
    14  - `iperf3` measures bandwidth and the quality of a network link.
    15  
    16  - `nuttcp` determines the raw UDP layer throughput.
    17  
    18  ## Networking tests
    19  
    20  - `network-metrics-iperf3.sh` measures bandwidth, jitter,
    21  and packet-per-second throughput using `iperf3` on single threaded connections. The
    22  bandwidth test shows the speed of the data transfer. The jitter test measures the
    23  variation in the delay of received packets. The packet-per-second tests show the
    24  maximum number of (smallest sized) packets allowed through the transports.
    25  
    26  - `network-metrics-nuttcp.sh` measures the UDP bandwidth using `nuttcp`. This tool
    27  shows the speed of the data transfer for the UDP protocol.
    28  
    29  - `network-metrics-iperf.sh` measures bidirectional bandwidth. Bidirectional tests
    30  are used to test both servers for the maximum amount of throughput.
    31   
    32  - `network-metrics-memory.sh` measures the Proportional Set Size (PSS), Resident Set Size (RSS),
    33  and Virtual Set Size (VSS) of the hypervisor footprint on the host using
    34  `smem` while running a transfer of one GB with `nuttcp`.
    35  
    36  - `network-metrics-nginx-ab-benchmark.sh` uses an Nginx container and runs the Apache
    37  benchmarking tool on the host to calculate the requests per second.
    38  
    39  - `network-latency.sh` measures the latency using ping. The ping utility measures
    40  how long it takes one packet to get from one point to another.
    41  
    42  ## Running the tests
    43  
    44  Individual tests can be run by hand, for example:
    45  
    46  ```
    47  $ cd metrics
    48  $ bash network/network-metrics-nuttcp.sh
    49  ```
    50  
    51  ## Expected results
    52  
    53  In order to obtain repeatable and stable results it is necessary to run the
    54  tests multiple times (at least 15 times to have standard deviation < 3%).
    55  
    56  > **NOTE** Networking tests results can vary between platforms and OS
    57  > distributions.