From 6f14d6ae66bffc2703ccca0a8907b326d15b2c38 Mon Sep 17 00:00:00 2001 From: Your Name Date: Sat, 24 May 2025 12:46:19 +0100 Subject: [PATCH 1/5] initial commit --- .../microbenchmark-network-iperf3/_index.md | 53 ++++++++++++++++++ .../_next-steps.md | 8 +++ .../example-picture.png | Bin 0 -> 63167 bytes .../microbenchmark-network-iperf3/how-to-1.md | 10 ++++ .../microbenchmark-network-iperf3/how-to-2.md | 13 +++++ 5 files changed, 84 insertions(+) create mode 100644 content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/_index.md create mode 100644 content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/_next-steps.md create mode 100644 content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/example-picture.png create mode 100644 content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/how-to-1.md create mode 100644 content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/how-to-2.md diff --git a/content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/_index.md b/content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/_index.md new file mode 100644 index 0000000000..ec8f0e4589 --- /dev/null +++ b/content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/_index.md @@ -0,0 +1,53 @@ +--- +title: PLACEHOLDER TITLE + +minutes_to_complete: 10 + +who_is_this_for: PLACEHOLDER SENTENCE + +learning_objectives: + - PLACEHOLDER OBJECTIVE 1 + - PLACEHOLDER OBJECTIVE 2 + +prerequisites: + - PLACEHOLDER PREREQ 1 + - PLACEHOLDER PREREQ 2 + +author: PLACEHOLDER NAME + +### Tags +skilllevels: PLACEHOLDER SKILLLEVEL +subjects: PLACEHOLDER SUBJECT +armips: + - PLACEHOLDER IP A + - PLACEHOLDER IP B +tools_software_languages: + - PLACEHOLDER TOOL OR SOFTWARE C + - PLACEHOLDER TOOL OR SOFTWARE D +operatingsystems: + - PLACEHOLDER OS G + + + +further_reading: + - resource: + title: PLACEHOLDER MANUAL + link: PLACEHOLDER MANUAL LINK + type: documentation + - resource: + title: PLACEHOLDER BLOG + link: PLACEHOLDER BLOG LINK + type: blog + - resource: + title: PLACEHOLDER GENERAL WEBSITE + link: PLACEHOLDER GENERAL WEBSITE LINK + type: website + + + +### FIXED, DO NOT MODIFY +# ================================================================================ +weight: 1 # _index.md always has weight of 1 to order correctly +layout: "learningpathall" # All files under learning paths have this same wrapper +learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content. +--- diff --git a/content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/_next-steps.md b/content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/_next-steps.md new file mode 100644 index 0000000000..c3db0de5a2 --- /dev/null +++ b/content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/_next-steps.md @@ -0,0 +1,8 @@ +--- +# ================================================================================ +# FIXED, DO NOT MODIFY THIS FILE +# ================================================================================ +weight: 21 # Set to always be larger than the content in this path to be at the end of the navigation. +title: "Next Steps" # Always the same, html page title. +layout: "learningpathall" # All files under learning paths have this same wrapper for Hugo processing. +--- diff --git a/content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/example-picture.png b/content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/example-picture.png new file mode 100644 index 0000000000000000000000000000000000000000..c69844bed44b65c7f5bc6cf511f93987fdcd7b95 GIT binary patch literal 63167 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 q-Mv3pxc`&l*gyNt{xlEs;Qs>q{#983 literal 0 HcmV?d00001 diff --git a/content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/how-to-1.md b/content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/how-to-1.md new file mode 100644 index 0000000000..8b23cb6bf1 --- /dev/null +++ b/content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/how-to-1.md @@ -0,0 +1,10 @@ +--- +title: PLACEHOLDER STEP TITLE 1 +weight: 2 + +### FIXED, DO NOT MODIFY +layout: learningpathall +--- + +## PLACEHOLDER HEADER +YOUR CONTENT GOES HERE diff --git a/content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/how-to-2.md b/content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/how-to-2.md new file mode 100644 index 0000000000..f884b5592b --- /dev/null +++ b/content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/how-to-2.md @@ -0,0 +1,13 @@ +--- +title: PLACEHOLDER STEP TITLE 2 +weight: 3 + +### FIXED, DO NOT MODIFY +layout: learningpathall +--- + +## PLACEHOLDER HEADER OF SECOND STEP +YOUR CONTENT GOES HERE + +IMAGE HERE: +![example image alt-text#center](example-picture.png "Figure 1. Example image caption") From ec4e99ee36df92ed34529d05d64e63ab91d0933c Mon Sep 17 00:00:00 2001 From: Your Name Date: Fri, 30 May 2025 13:20:03 +0100 Subject: [PATCH 2/5] initial commit --- .../microbenchmark-network-iperf3/Setup.md | 70 +++++++++++++ .../microbenchmark-network-iperf3/_index.md | 42 +++----- .../basic-microbenchmarking.md | 97 ++++++++++++++++++ .../example-picture.png | Bin 63167 -> 0 bytes .../example_traffic_rules.png | Bin 0 -> 29732 bytes .../microbenchmark-network-iperf3/how-to-1.md | 10 -- .../microbenchmark-network-iperf3/how-to-2.md | 13 --- .../instance-network-size.png | Bin 0 -> 102201 bytes .../server-ip.png | Bin 0 -> 15191 bytes .../simulating-network-conditions.md | 90 ++++++++++++++++ .../microbenchmark-network-iperf3/tuning.md | 52 ++++++++++ 11 files changed, 325 insertions(+), 49 deletions(-) create mode 100644 content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/Setup.md create mode 100644 content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/basic-microbenchmarking.md delete mode 100644 content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/example-picture.png create mode 100644 content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/example_traffic_rules.png delete mode 100644 content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/how-to-1.md delete mode 100644 content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/how-to-2.md create mode 100644 content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/instance-network-size.png create mode 100644 content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/server-ip.png create mode 100644 content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/simulating-network-conditions.md create mode 100644 content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/tuning.md diff --git a/content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/Setup.md b/content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/Setup.md new file mode 100644 index 0000000000..e253f00517 --- /dev/null +++ b/content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/Setup.md @@ -0,0 +1,70 @@ +--- +title: Setup +weight: 2 + +### FIXED, DO NOT MODIFY +layout: learningpathall +--- + +### Setup + +For this demonstration I will be using instances available from AWS within a virtual private cloud (VPC) + +Create 2 Arm-based linux instances, 1 to act as the server and the other to act as the client. In this tutorial I will be using an `t4g.xlarge` instance running Ubuntu 22.04 LTS. + + +### Install dependencies + +Run the following command to install the microbenchmark tool, `iperf3`. + +```bash +sudo apt update +sudo apt install iperf3 -y +``` + + +### Update Security Rules + +Next, we need to update the default security rules to enable specific inbound and outbound protocols. From the AWS console, navigate to the security tab. Edit the inbound rules to enable `ICMP`, `UDP` and `TCP` traffic. Please note: for security we recommend updating the source to be the IP addresses of the client and server respectively. + +![example_traffic](./example_traffic_rules.png) + + +### Update local DNS + +For readability, we will add the server IP address and an alias name to the local DNS cache in `/etc/hosts`. + +On the client, add the IP address of the server to the `/etc/hosts` file. Likewise on the server add the IP address of the client to the `/etc/hosts` file. + +![server-ip](./server-ip.png). + +### Confirm server is reachable + +Finally, confirm the client can reach the server with the ping command below. + +```bash +ping SERVER -c 3 && ping 127.0.0.1 -c 3 +``` + +The output below shows that both SERVER and localhost (127.0.0.1) are reachable. Naturally, on this system local host response tile is ~10x faster than the server. Your results will vary depending on geographic colocation and other networking factors. + +```output +PING SERVER (10.248.213.104) 56(84) bytes of data. +64 bytes from SERVER (10.248.213.104): icmp_seq=1 ttl=64 time=0.217 ms +64 bytes from SERVER (10.248.213.104): icmp_seq=2 ttl=64 time=0.218 ms +64 bytes from SERVER (10.248.213.104): icmp_seq=3 ttl=64 time=0.219 ms + +--- SERVER ping statistics --- +3 packets transmitted, 3 received, 0% packet loss, time 2056ms +rtt min/avg/max/mdev = 0.217/0.218/0.219/0.000 ms +PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data. +64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.022 ms +64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.032 ms +64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.029 ms + +--- 127.0.0.1 ping statistics --- +3 packets transmitted, 3 received, 0% packet loss, time 2046ms +rtt min/avg/max/mdev = 0.022/0.027/0.032/0.004 ms + +``` + diff --git a/content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/_index.md b/content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/_index.md index ec8f0e4589..a73e36dee0 100644 --- a/content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/_index.md +++ b/content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/_index.md @@ -1,48 +1,38 @@ --- -title: PLACEHOLDER TITLE +title: Get started with network microbenchmarking and tuning with iperf3 -minutes_to_complete: 10 +minutes_to_complete: 30 -who_is_this_for: PLACEHOLDER SENTENCE +who_is_this_for: Network engineers, sys admins or application developers learning_objectives: - - PLACEHOLDER OBJECTIVE 1 - - PLACEHOLDER OBJECTIVE 2 + - Understand how to use the iperf3 tool to microbenchmark different network conditions + - Understand how to use the tc tool to simulate different network environments + - Understand basic runtime parameters to tune performance for your application prerequisites: - - PLACEHOLDER PREREQ 1 - - PLACEHOLDER PREREQ 2 + - Foundational understanding on networking principles such as TCP/IP and UDP. + - Access to change inbound and outbound security rules or access to physical hardware -author: PLACEHOLDER NAME +author: Kieran Hejmadi ### Tags -skilllevels: PLACEHOLDER SKILLLEVEL -subjects: PLACEHOLDER SUBJECT +skilllevels: Introductory +subjects: Performance and Optimization armips: - - PLACEHOLDER IP A - - PLACEHOLDER IP B + - Neoverse tools_software_languages: - - PLACEHOLDER TOOL OR SOFTWARE C - - PLACEHOLDER TOOL OR SOFTWARE D + - iperf3 operatingsystems: - - PLACEHOLDER OS G + - Linux further_reading: - resource: - title: PLACEHOLDER MANUAL - link: PLACEHOLDER MANUAL LINK + title: iperf3 user manual + link: https://iperf.fr/iperf-doc.php type: documentation - - resource: - title: PLACEHOLDER BLOG - link: PLACEHOLDER BLOG LINK - type: blog - - resource: - title: PLACEHOLDER GENERAL WEBSITE - link: PLACEHOLDER GENERAL WEBSITE LINK - type: website - ### FIXED, DO NOT MODIFY diff --git a/content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/basic-microbenchmarking.md b/content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/basic-microbenchmarking.md new file mode 100644 index 0000000000..a2b25cdb86 --- /dev/null +++ b/content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/basic-microbenchmarking.md @@ -0,0 +1,97 @@ +--- +title: Microbenchmark Existing Network Connection +weight: 3 + +### FIXED, DO NOT MODIFY +layout: learningpathall +--- + +## Microbenchmark Existing Network Connection + + +First we will microbenchmark the bandwidth between the client and server. First start the `iperf` server on the server node with the following command. + +```bash +iperf3 -s +``` + +```output +----------------------------------------------------------- +Server listening on 5201 (test #1) +----------------------------------------------------------- + + +``` +By default, the server listens on port 5201. Use the `-p` flag to specify another port if it is in use. + +Please note: If you're unable to start the `iperf` server, kill the process with the following command: `sudo kill $(pgrep iperf3)` + +### Running Basic TCP Microbenchmark + +Likewise, on the client node, run the following command to run a simple 10-second microbenchmark using the TCP protocol. + +```bash +iperf3 -c SERVER -V +``` + +```output +... +[ 5] local 10.248.213.97 port 42176 connected to 10.248.213.104 port 5201 +Starting Test: protocol: TCP, 1 streams, 131072 byte blocks, omitting 0 seconds, 10 second test, tos 0 +[ ID] Interval Transfer Bitrate Retr Cwnd +[ 5] 0.00-1.00 sec 594 MBytes 4.98 Gbits/sec 0 1.48 MBytes +[ 5] 1.00-2.00 sec 593 MBytes 4.97 Gbits/sec 0 2.07 MBytes +[ 5] 2.00-3.00 sec 592 MBytes 4.97 Gbits/sec 0 2.07 MBytes +[ 5] 3.00-4.00 sec 590 MBytes 4.96 Gbits/sec 0 2.07 MBytes +[ 5] 4.00-5.00 sec 593 MBytes 4.97 Gbits/sec 0 2.18 MBytes +[ 5] 5.00-6.00 sec 591 MBytes 4.96 Gbits/sec 0 2.18 MBytes +[ 5] 6.00-7.00 sec 592 MBytes 4.97 Gbits/sec 0 2.18 MBytes +[ 5] 7.00-8.00 sec 593 MBytes 4.97 Gbits/sec 0 2.18 MBytes +[ 5] 8.00-9.00 sec 588 MBytes 4.93 Gbits/sec 0 2.18 MBytes +[ 5] 9.00-10.00 sec 592 MBytes 4.96 Gbits/sec 0 2.18 MBytes +- - - - - - - - - - - - - - - - - - - - - - - - - +Test Complete. Summary Results: +[ ID] Interval Transfer Bitrate Retr +[ 5] 0.00-10.00 sec 5.78 GBytes 4.96 Gbits/sec 0 sender +[ 5] 0.00-10.00 sec 5.78 GBytes 4.96 Gbits/sec receiver +CPU Utilization: local/sender 5.3% (0.1%u/5.2%s), remote/receiver 26.7% (1.2%u/25.5%s) +snd_tcp_congestion cubic +rcv_tcp_congestion cubic + +iperf Done. +``` + +The important information to observe is `Cwnd`, this stands for the control window size and corresponds to the allowed number of TCP transactions inflight before receiving an acknowledgment `ACK` from the server. This adjusts dynamically to not overwhelm the receiver and adjust for variable link connection strengths. + +The `CPU Utilization` row shows both the usage on the sender and receiver. If you are migrating your workload to a different platform, such as from `x86` to `AArch64`, there may be subtle variations. + +Finally the `snd_tcp_congestion cubic` abd `rcv_tcp_congestion cubic` variables show the congestion control algorithm used. + +This test has saturated the 5 Gbps bandwidth available to our `t4g.xlarge` AWS instance. + +![instance-network-size](./instance-network-size.png) + +### Running Basic UDP Microbenchmark + +We can also microbenchmark the `UDP` protocol with the `-u` flag. As a reminder, UDP does not guarantee packat delivery with some packets being lost. As such we need to observe the statistics on the server side to see the % of packet lost and the variation in packet arrival time (jitter). The UDP protocol is widely used in applications that need timely packet delivery, such as online gaming on video calls. + +Run the following command from the client to send 2 parallel UDP streams with the `-P 2` option. + +```bash +iperf3 -c SERVER -V -u -P 2 +``` + +Looking at the server output we can observe 0% of packets where lost for our short test. + +```output +[ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams +[ 5] 0.00-10.00 sec 1.25 MBytes 1.05 Mbits/sec 0.016 ms 0/147 (0%) receiver +[ 6] 0.00-10.00 sec 1.25 MBytes 1.05 Mbits/sec 0.014 ms 0/147 (0%) receiver +[SUM] 0.00-10.00 sec 2.51 MBytes 2.10 Mbits/sec 0.015 ms 0/294 (0%) receiver +``` + +Additionally on the client side, our 2 streams maxed out 2 of our 4 core system. + +```output +CPU Utilization: local/sender 200.3% (200.3%u/0.0%s), remote/receiver 0.2% (0.0%u/0.2%s) +``` \ No newline at end of file diff --git a/content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/example-picture.png b/content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/example-picture.png deleted file mode 100644 index c69844bed44b65c7f5bc6cf511f93987fdcd7b95..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 63167 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 q-Mv3pxc`&l*gyNt{xlEs;Qs>q{#983 diff --git a/content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/example_traffic_rules.png b/content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/example_traffic_rules.png new file mode 100644 index 0000000000000000000000000000000000000000..5049cef0471bf76b80c09ee53450a78e797a042d GIT binary patch literal 29732 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%0DFP>V;x>xar9U=J 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 literal 0 HcmV?d00001 diff --git a/content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/how-to-1.md b/content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/how-to-1.md deleted file mode 100644 index 8b23cb6bf1..0000000000 --- a/content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/how-to-1.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: PLACEHOLDER STEP TITLE 1 -weight: 2 - -### FIXED, DO NOT MODIFY -layout: learningpathall ---- - -## PLACEHOLDER HEADER -YOUR CONTENT GOES HERE diff --git a/content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/how-to-2.md b/content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/how-to-2.md deleted file mode 100644 index f884b5592b..0000000000 --- a/content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/how-to-2.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: PLACEHOLDER STEP TITLE 2 -weight: 3 - -### FIXED, DO NOT MODIFY -layout: learningpathall ---- - -## PLACEHOLDER HEADER OF SECOND STEP -YOUR CONTENT GOES HERE - -IMAGE HERE: -![example image alt-text#center](example-picture.png "Figure 1. Example image caption") diff --git a/content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/instance-network-size.png b/content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/instance-network-size.png new file mode 100644 index 0000000000000000000000000000000000000000..d3f6d1f12557f87d156dcf6a128d80365688ed98 GIT binary patch literal 102201 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�HmzMdc-YFqlqI?0qzW&64h-@k+#6)*Ecm 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 Iag(?I3zTQ5Jpcdz literal 0 HcmV?d00001 diff --git a/content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/server-ip.png b/content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/server-ip.png new file mode 100644 index 0000000000000000000000000000000000000000..205d46b911cf13c757f7f6e3c77f693b2449a1b3 GIT binary patch literal 15191 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 mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 + link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 + inet 127.0.0.1/8 scope host lo + valid_lft forever preferred_lft forever + inet6 ::1/128 scope host noprefixroute + valid_lft forever preferred_lft forever +2: ens5: mtu 9001 qdisc mq state UP group default qlen 1000 + link/ether 0a:92:1b:a9:63:29 brd ff:ff:ff:ff:ff:ff + inet 10.248.213.97/26 metric 100 brd 10.248.213.127 scope global dynamic ens5 + valid_lft 1984sec preferred_lft 1984sec + inet6 fe80::892:1bff:fea9:6329/64 scope link + valid_lft forever preferred_lft forever + +``` + +Run the following command to add an emulated delay of 10ms on `ens5`. + +```bash +sudo tc qdisc add dev ens5 root netem delay 10ms +``` + +Rerunning the basic TCP test with a delay we observe the `Cwnd` size has grew larger to compensate for the longer response time. Additionally, the bitrate has dropped from ~4.9 to ~2.3 `Gbit/sec`. + + +```output +[ 5] local 10.248.213.97 port 43170 connected to 10.248.213.104 port 5201 +Starting Test: protocol: TCP, 1 streams, 131072 byte blocks, omitting 0 seconds, 10 second test, tos 0 +[ ID] Interval Transfer Bitrate Retr Cwnd +[ 5] 0.00-1.00 sec 282 MBytes 2.36 Gbits/sec 0 8.02 MBytes +[ 5] 1.00-2.00 sec 302 MBytes 2.53 Gbits/sec 0 8.02 MBytes +[ 5] 2.00-3.00 sec 301 MBytes 2.52 Gbits/sec 0 8.02 MBytes +[ 5] 3.00-4.00 sec 302 MBytes 2.54 Gbits/sec 0 8.02 MBytes +[ 5] 4.00-5.00 sec 302 MBytes 2.53 Gbits/sec 0 8.02 MBytes +[ 5] 5.00-6.00 sec 304 MBytes 2.55 Gbits/sec 0 8.02 MBytes +[ 5] 6.00-7.00 sec 302 MBytes 2.53 Gbits/sec 0 8.02 MBytes +[ 5] 7.00-8.00 sec 303 MBytes 2.54 Gbits/sec 0 8.02 MBytes +[ 5] 8.00-9.00 sec 303 MBytes 2.54 Gbits/sec 0 8.02 MBytes +[ 5] 9.00-10.00 sec 301 MBytes 2.53 Gbits/sec 0 8.02 MBytes +- - - - - - - - - - - - - - - - - - - - - - - - - +Test Complete. Summary Results: +[ ID] Interval Transfer Bitrate Retr +[ 5] 0.00-10.00 sec 2.93 GBytes 2.52 Gbits/sec 0 sender +[ 5] 0.00-10.01 sec 2.93 GBytes 2.52 Gbits/sec receiver +CPU Utilization: local/sender 3.4% (0.0%u/3.4%s), remote/receiver 11.0% (0.4%u/10.7%s) +snd_tcp_congestion cubic +rcv_tcp_congestion cubic + +iperf Done. +``` + +### Simulating Packet Loss + +To test the resiliency of a distributed application we can add a simulated packet loss of 1%. As opposed to a 10ms delay, this will result in no acknowledgment being received for 1% of packets. Given TCP is a lossless protocol a retry must be sent. + +```bash +sudo tc qdisc del dev ens5 root +sudo tc qdisc add dev ens5 root netem loss 1% +``` + +Rerunning the basic TCP test we no observe a significant number of retries (`Retr`) and a corresponding drop in bitrate. + +```bash +iperf3 -c SERVER -V +``` +```output +Test Complete. Summary Results: +[ ID] Interval Transfer Bitrate Retr +[ 5] 0.00-10.00 sec 4.41 GBytes 3.78 Gbits/sec 5030 sender +[ 5] 0.00-10.00 sec 4.40 GBytes 3.78 Gbits/sec receiver +``` + diff --git a/content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/tuning.md b/content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/tuning.md new file mode 100644 index 0000000000..574cbfc65f --- /dev/null +++ b/content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/tuning.md @@ -0,0 +1,52 @@ +--- +title: Tuning Kernel Parameters +weight: 5 + +### FIXED, DO NOT MODIFY +layout: learningpathall +--- + +## Base example + +In this example I will connect to the server from my remote client that has a higher round trip time. + + +```output +Starting Test: protocol: TCP, 1 streams, 131072 byte blocks, omitting 0 seconds, 10 second test, tos 0 +... +Test Complete. Summary Results: +[ ID] Interval Transfer Bitrate +[ 8] 0.00-10.01 sec 187 MBytes 157 Mbits/sec sender +[ 8] 0.00-10.03 sec 187 MBytes 156 Mbits/sec receiver +``` + + + +## Modify kernel parameters + +On the server, we can configure linux kernel runtime parameters with the `sysctl` command. + +There are a plenthora of dials to tune that relate to performance and security. The following command can be used to list all available dials. The corresponding [kernel documentation](https://docs.kernel.org/networking/ip-sysctl.html#ip-sysctl) can provide a more detailed description of each parameter. + +```bash +sysctl -a | grep tcp +``` + +Please note: Depending on your operating system, some parameters may not be available. For example on AWS Ubuntu 22.04 LTS only the `cubic` and `reno` algorithms are available (`net.ipv4.tcp_available_congestion_control = reno cubic`). + +We can increase the read and write max buffer sizes of the kernel on the server to enable more data to be held. This is at the tradeoff of increased memory utilisation. run the following commands from the server. + +```bash +sudo sysctl net.core.rmem_max=134217728 +sudo sysctl net.core.wmem_max=134217728 +``` + +Restart the `iperf3` server and rerunning leads to higher achieved bitrate. + +```output +Test Complete. Summary Results: +[ ID] Interval Transfer Bitrate +[ 8] 0.00-10.00 sec 308 MBytes 258 Mbits/sec sender +[ 8] 0.00-10.03 sec 307 MBytes 257 Mbits/sec receiver + +``` \ No newline at end of file From 0e59e913508f310a16fef8a3d684a0578c57e182 Mon Sep 17 00:00:00 2001 From: Your Name Date: Fri, 30 May 2025 14:47:51 +0100 Subject: [PATCH 3/5] review before PR --- .../microbenchmark-network-iperf3/Setup.md | 13 +++++--- .../microbenchmark-network-iperf3/_index.md | 4 +-- .../basic-microbenchmarking.md | 26 +++++++++------- .../simulating-network-conditions.md | 9 +++--- .../microbenchmark-network-iperf3/tuning.md | 30 ++++++++++++++----- 5 files changed, 53 insertions(+), 29 deletions(-) diff --git a/content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/Setup.md b/content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/Setup.md index e253f00517..8f8b0e0e0b 100644 --- a/content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/Setup.md +++ b/content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/Setup.md @@ -10,7 +10,7 @@ layout: learningpathall For this demonstration I will be using instances available from AWS within a virtual private cloud (VPC) -Create 2 Arm-based linux instances, 1 to act as the server and the other to act as the client. In this tutorial I will be using an `t4g.xlarge` instance running Ubuntu 22.04 LTS. +Create 2 Arm-based linux instances, 1 to act as the server and the other to act as the client. In this tutorial I will be using two `t4g.xlarge` instance running Ubuntu 22.04 LTS. ### Install dependencies @@ -25,14 +25,19 @@ sudo apt install iperf3 -y ### Update Security Rules -Next, we need to update the default security rules to enable specific inbound and outbound protocols. From the AWS console, navigate to the security tab. Edit the inbound rules to enable `ICMP`, `UDP` and `TCP` traffic. Please note: for security we recommend updating the source to be the IP addresses of the client and server respectively. +Next, we need to update the default security rules to enable specific inbound and outbound protocols. From the AWS console, navigate to the security tab. Edit the inbound rules to enable `ICMP`, `UDP` and `TCP` traffic to enable communication between the client and server + ![example_traffic](./example_traffic_rules.png) +{{% notice Note %}} +For security set the source and port ranges to those that are being used +{{% /notice %}} + ### Update local DNS -For readability, we will add the server IP address and an alias name to the local DNS cache in `/etc/hosts`. +For readability, we will add the server IP address and an alias to the local DNS cache in `/etc/hosts`. The local IP address of the server and client can be found in the AWS dashboard. On the client, add the IP address of the server to the `/etc/hosts` file. Likewise on the server add the IP address of the client to the `/etc/hosts` file. @@ -40,7 +45,7 @@ On the client, add the IP address of the server to the `/etc/hosts` file. Likewi ### Confirm server is reachable -Finally, confirm the client can reach the server with the ping command below. +Finally, confirm the client can reach the server with the ping command below. As a reference we also ping the localhost. ```bash ping SERVER -c 3 && ping 127.0.0.1 -c 3 diff --git a/content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/_index.md b/content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/_index.md index a73e36dee0..4da3382546 100644 --- a/content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/_index.md +++ b/content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/_index.md @@ -3,7 +3,7 @@ title: Get started with network microbenchmarking and tuning with iperf3 minutes_to_complete: 30 -who_is_this_for: Network engineers, sys admins or application developers +who_is_this_for: Performance Engineers, Linux system administrators or application developers looking to microbenchmark, simulate or tune the networking performance of distributed systems. learning_objectives: - Understand how to use the iperf3 tool to microbenchmark different network conditions @@ -12,7 +12,7 @@ learning_objectives: prerequisites: - Foundational understanding on networking principles such as TCP/IP and UDP. - - Access to change inbound and outbound security rules or access to physical hardware + - Access to Arm-based cloud instances or access to physical hardware author: Kieran Hejmadi diff --git a/content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/basic-microbenchmarking.md b/content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/basic-microbenchmarking.md index a2b25cdb86..fe7dceaf8b 100644 --- a/content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/basic-microbenchmarking.md +++ b/content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/basic-microbenchmarking.md @@ -6,7 +6,7 @@ weight: 3 layout: learningpathall --- -## Microbenchmark Existing Network Connection +## Microbenchmark TCP Connection First we will microbenchmark the bandwidth between the client and server. First start the `iperf` server on the server node with the following command. @@ -24,11 +24,15 @@ Server listening on 5201 (test #1) ``` By default, the server listens on port 5201. Use the `-p` flag to specify another port if it is in use. -Please note: If you're unable to start the `iperf` server, kill the process with the following command: `sudo kill $(pgrep iperf3)` +{{% notice Tip %}} +If you already have an `iperf3` server running, you can manually kill the process with the following command. + ```bash + sudo kill $(pgrep iperf3) + ``` +{{% /notice %}} -### Running Basic TCP Microbenchmark -Likewise, on the client node, run the following command to run a simple 10-second microbenchmark using the TCP protocol. +Next, on the client node, run the following command to run a simple 10-second microbenchmark using the TCP protocol. ```bash iperf3 -c SERVER -V @@ -61,19 +65,19 @@ rcv_tcp_congestion cubic iperf Done. ``` -The important information to observe is `Cwnd`, this stands for the control window size and corresponds to the allowed number of TCP transactions inflight before receiving an acknowledgment `ACK` from the server. This adjusts dynamically to not overwhelm the receiver and adjust for variable link connection strengths. +- The`Cwnd` stands for the control window size and corresponds to the allowed number of TCP transactions inflight before receiving an acknowledgment `ACK` from the server. This adjusts dynamically to not overwhelm the receiver and adjust for variable link connection strengths. -The `CPU Utilization` row shows both the usage on the sender and receiver. If you are migrating your workload to a different platform, such as from `x86` to `AArch64`, there may be subtle variations. +- The `CPU Utilization` row shows both the usage on the sender and receiver. If you are migrating your workload to a different platform, such as from `x86` to `AArch64`, there may be subtle variations. -Finally the `snd_tcp_congestion cubic` abd `rcv_tcp_congestion cubic` variables show the congestion control algorithm used. +- The `snd_tcp_congestion cubic` abd `rcv_tcp_congestion cubic` variables show the congestion control algorithm used. -This test has saturated the 5 Gbps bandwidth available to our `t4g.xlarge` AWS instance. +- This `bitrate` shows the throughput achieved under this microbenchmark. As we can see from the above, we have saturated the 5 Gbps bandwidth available to our `t4g.xlarge` AWS instance. ![instance-network-size](./instance-network-size.png) -### Running Basic UDP Microbenchmark +### Microbenchmark UDP connection -We can also microbenchmark the `UDP` protocol with the `-u` flag. As a reminder, UDP does not guarantee packat delivery with some packets being lost. As such we need to observe the statistics on the server side to see the % of packet lost and the variation in packet arrival time (jitter). The UDP protocol is widely used in applications that need timely packet delivery, such as online gaming on video calls. +We can also microbenchmark the `UDP` protocol with the `-u` flag. As a reminder, UDP does not guarantee packet delivery with some packets being lost. As such we need to observe the statistics on the server side to see the % of packet lost and the variation in packet arrival time (jitter). The UDP protocol is widely used in applications that need timely packet delivery, such as online gaming on video calls. Run the following command from the client to send 2 parallel UDP streams with the `-P 2` option. @@ -90,7 +94,7 @@ Looking at the server output we can observe 0% of packets where lost for our sho [SUM] 0.00-10.00 sec 2.51 MBytes 2.10 Mbits/sec 0.015 ms 0/294 (0%) receiver ``` -Additionally on the client side, our 2 streams maxed out 2 of our 4 core system. +Additionally on the client side, our 2 streams saturated 2 of our 4 cores in the local node. ```output CPU Utilization: local/sender 200.3% (200.3%u/0.0%s), remote/receiver 0.2% (0.0%u/0.2%s) diff --git a/content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/simulating-network-conditions.md b/content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/simulating-network-conditions.md index 02cc4b4dbe..7133fa9d3f 100644 --- a/content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/simulating-network-conditions.md +++ b/content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/simulating-network-conditions.md @@ -1,5 +1,5 @@ --- -title: Simulating Different Scenarios +title: Simulating Different Network Conditions weight: 4 ### FIXED, DO NOT MODIFY @@ -8,7 +8,7 @@ layout: learningpathall ## Adding a delay to a TCP connection -The linux `tc` utility can be used to manipulate traffic control settings. First, find the name of connections with the following command. +The linux `tc` utility can be used to manipulate traffic control settings. First, find the name of interface with the following command. ```bash ip addr show @@ -38,7 +38,7 @@ Run the following command to add an emulated delay of 10ms on `ens5`. sudo tc qdisc add dev ens5 root netem delay 10ms ``` -Rerunning the basic TCP test with a delay we observe the `Cwnd` size has grew larger to compensate for the longer response time. Additionally, the bitrate has dropped from ~4.9 to ~2.3 `Gbit/sec`. +Rerunning the basic TCP test (`iperf3 -c SERVER -V`) with a delay we observe the `Cwnd` size has grew larger to compensate for the longer response time. Additionally, the bitrate has dropped from ~4.9 to ~2.3 `Gbit/sec`. ```output @@ -76,7 +76,7 @@ sudo tc qdisc del dev ens5 root sudo tc qdisc add dev ens5 root netem loss 1% ``` -Rerunning the basic TCP test we no observe a significant number of retries (`Retr`) and a corresponding drop in bitrate. +Rerunning the basic TCP test we observe an increased number of retries (`Retr`) and a corresponding drop in bitrate. ```bash iperf3 -c SERVER -V @@ -88,3 +88,4 @@ Test Complete. Summary Results: [ 5] 0.00-10.00 sec 4.40 GBytes 3.78 Gbits/sec receiver ``` +Please see the `tc` [user documentation](https://man7.org/linux/man-pages/man8/tc.8.html) for the different ways to simulate different perturbation and your systems resiliency to such events. diff --git a/content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/tuning.md b/content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/tuning.md index 574cbfc65f..67c340551d 100644 --- a/content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/tuning.md +++ b/content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/tuning.md @@ -6,10 +6,16 @@ weight: 5 layout: learningpathall --- -## Base example +### Connecting from Local Machine -In this example I will connect to the server from my remote client that has a higher round trip time. +Now we can observe ways to mitigate performance degradation due to events such as packet loss. In this example, I will connect to the AWS server node from my local machine to demonstrate a longer response time. Please check the `iperf3` installation guide on the [official documentation](https://iperf.fr/iperf-download.php) if you're not using Ubuntu. As the output below shows we have a larger round trip time in excess of 40ms. +```output +5 packets transmitted, 5 packets received, 0.0% packet loss +round-trip min/avg/max/stddev = 44.896/46.967/49.279/1.444 ms +``` + +Running a standard TCP client connection with the `iperf3 -c SERVER -V` command shows an average bitrate of 157 Mbps. ```output Starting Test: protocol: TCP, 1 streams, 131072 byte blocks, omitting 0 seconds, 10 second test, tos 0 @@ -22,7 +28,7 @@ Test Complete. Summary Results: -## Modify kernel parameters +### Modify kernel parameters On the server, we can configure linux kernel runtime parameters with the `sysctl` command. @@ -32,16 +38,22 @@ There are a plenthora of dials to tune that relate to performance and security. sysctl -a | grep tcp ``` -Please note: Depending on your operating system, some parameters may not be available. For example on AWS Ubuntu 22.04 LTS only the `cubic` and `reno` algorithms are available (`net.ipv4.tcp_available_congestion_control = reno cubic`). +{{% notice Note %}} +Depending on your operating system, some parameters may not be available. For example on AWS Ubuntu 22.04 LTS only the `cubic` and `reno` congestion control algorithms are available. +```bash +net.ipv4.tcp_available_congestion_control = reno cubic +``` +{{% /notice %}} + We can increase the read and write max buffer sizes of the kernel on the server to enable more data to be held. This is at the tradeoff of increased memory utilisation. run the following commands from the server. ```bash -sudo sysctl net.core.rmem_max=134217728 -sudo sysctl net.core.wmem_max=134217728 +sudo sysctl net.core.rmem_max=134217728 # default = 212992 +sudo sysctl net.core.wmem_max=134217728 # default = 212992 ``` -Restart the `iperf3` server and rerunning leads to higher achieved bitrate. +Restart the `iperf3` server. Run the `iperf3 -c SERVER -V` command from the client leads to significantly improved bitrate with no modification on the client side. ```output Test Complete. Summary Results: @@ -49,4 +61,6 @@ Test Complete. Summary Results: [ 8] 0.00-10.00 sec 308 MBytes 258 Mbits/sec sender [ 8] 0.00-10.03 sec 307 MBytes 257 Mbits/sec receiver -``` \ No newline at end of file +``` + +This learning path serves as an introduction to microbenchmarking and performance tuning. Which parameters to adjust depends on your own use case and non-functional performance requirements of your system. \ No newline at end of file From 1631e9d0bd94603c98b391d544bbca0ade057738 Mon Sep 17 00:00:00 2001 From: Your Name Date: Fri, 30 May 2025 14:52:13 +0100 Subject: [PATCH 4/5] renamed Setup to setup to pass CI --- .../microbenchmark-network-iperf3/setup.md | 75 +++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/setup.md diff --git a/content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/setup.md b/content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/setup.md new file mode 100644 index 0000000000..8f8b0e0e0b --- /dev/null +++ b/content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/setup.md @@ -0,0 +1,75 @@ +--- +title: Setup +weight: 2 + +### FIXED, DO NOT MODIFY +layout: learningpathall +--- + +### Setup + +For this demonstration I will be using instances available from AWS within a virtual private cloud (VPC) + +Create 2 Arm-based linux instances, 1 to act as the server and the other to act as the client. In this tutorial I will be using two `t4g.xlarge` instance running Ubuntu 22.04 LTS. + + +### Install dependencies + +Run the following command to install the microbenchmark tool, `iperf3`. + +```bash +sudo apt update +sudo apt install iperf3 -y +``` + + +### Update Security Rules + +Next, we need to update the default security rules to enable specific inbound and outbound protocols. From the AWS console, navigate to the security tab. Edit the inbound rules to enable `ICMP`, `UDP` and `TCP` traffic to enable communication between the client and server + + +![example_traffic](./example_traffic_rules.png) + +{{% notice Note %}} +For security set the source and port ranges to those that are being used +{{% /notice %}} + + +### Update local DNS + +For readability, we will add the server IP address and an alias to the local DNS cache in `/etc/hosts`. The local IP address of the server and client can be found in the AWS dashboard. + +On the client, add the IP address of the server to the `/etc/hosts` file. Likewise on the server add the IP address of the client to the `/etc/hosts` file. + +![server-ip](./server-ip.png). + +### Confirm server is reachable + +Finally, confirm the client can reach the server with the ping command below. As a reference we also ping the localhost. + +```bash +ping SERVER -c 3 && ping 127.0.0.1 -c 3 +``` + +The output below shows that both SERVER and localhost (127.0.0.1) are reachable. Naturally, on this system local host response tile is ~10x faster than the server. Your results will vary depending on geographic colocation and other networking factors. + +```output +PING SERVER (10.248.213.104) 56(84) bytes of data. +64 bytes from SERVER (10.248.213.104): icmp_seq=1 ttl=64 time=0.217 ms +64 bytes from SERVER (10.248.213.104): icmp_seq=2 ttl=64 time=0.218 ms +64 bytes from SERVER (10.248.213.104): icmp_seq=3 ttl=64 time=0.219 ms + +--- SERVER ping statistics --- +3 packets transmitted, 3 received, 0% packet loss, time 2056ms +rtt min/avg/max/mdev = 0.217/0.218/0.219/0.000 ms +PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data. +64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.022 ms +64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.032 ms +64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.029 ms + +--- 127.0.0.1 ping statistics --- +3 packets transmitted, 3 received, 0% packet loss, time 2046ms +rtt min/avg/max/mdev = 0.022/0.027/0.032/0.004 ms + +``` + From 37da31c7cd0b9ceb0d52cc092f7c90e4453022b6 Mon Sep 17 00:00:00 2001 From: Kieran Hejmadi Date: Fri, 30 May 2025 14:54:02 +0100 Subject: [PATCH 5/5] removed Capital-letter version --- .../microbenchmark-network-iperf3/Setup.md | 75 ------------------- 1 file changed, 75 deletions(-) delete mode 100644 content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/Setup.md diff --git a/content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/Setup.md b/content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/Setup.md deleted file mode 100644 index 8f8b0e0e0b..0000000000 --- a/content/learning-paths/servers-and-cloud-computing/microbenchmark-network-iperf3/Setup.md +++ /dev/null @@ -1,75 +0,0 @@ ---- -title: Setup -weight: 2 - -### FIXED, DO NOT MODIFY -layout: learningpathall ---- - -### Setup - -For this demonstration I will be using instances available from AWS within a virtual private cloud (VPC) - -Create 2 Arm-based linux instances, 1 to act as the server and the other to act as the client. In this tutorial I will be using two `t4g.xlarge` instance running Ubuntu 22.04 LTS. - - -### Install dependencies - -Run the following command to install the microbenchmark tool, `iperf3`. - -```bash -sudo apt update -sudo apt install iperf3 -y -``` - - -### Update Security Rules - -Next, we need to update the default security rules to enable specific inbound and outbound protocols. From the AWS console, navigate to the security tab. Edit the inbound rules to enable `ICMP`, `UDP` and `TCP` traffic to enable communication between the client and server - - -![example_traffic](./example_traffic_rules.png) - -{{% notice Note %}} -For security set the source and port ranges to those that are being used -{{% /notice %}} - - -### Update local DNS - -For readability, we will add the server IP address and an alias to the local DNS cache in `/etc/hosts`. The local IP address of the server and client can be found in the AWS dashboard. - -On the client, add the IP address of the server to the `/etc/hosts` file. Likewise on the server add the IP address of the client to the `/etc/hosts` file. - -![server-ip](./server-ip.png). - -### Confirm server is reachable - -Finally, confirm the client can reach the server with the ping command below. As a reference we also ping the localhost. - -```bash -ping SERVER -c 3 && ping 127.0.0.1 -c 3 -``` - -The output below shows that both SERVER and localhost (127.0.0.1) are reachable. Naturally, on this system local host response tile is ~10x faster than the server. Your results will vary depending on geographic colocation and other networking factors. - -```output -PING SERVER (10.248.213.104) 56(84) bytes of data. -64 bytes from SERVER (10.248.213.104): icmp_seq=1 ttl=64 time=0.217 ms -64 bytes from SERVER (10.248.213.104): icmp_seq=2 ttl=64 time=0.218 ms -64 bytes from SERVER (10.248.213.104): icmp_seq=3 ttl=64 time=0.219 ms - ---- SERVER ping statistics --- -3 packets transmitted, 3 received, 0% packet loss, time 2056ms -rtt min/avg/max/mdev = 0.217/0.218/0.219/0.000 ms -PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data. -64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.022 ms -64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.032 ms -64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.029 ms - ---- 127.0.0.1 ping statistics --- -3 packets transmitted, 3 received, 0% packet loss, time 2046ms -rtt min/avg/max/mdev = 0.022/0.027/0.032/0.004 ms - -``` -