Unverified Commit 23867991 authored by Jakob Görgen's avatar Jakob Görgen
Browse files

new symphony folder with new folder structure and packages + removed old orchestration framework

parent a14a0365
#!/bin/bash
set -x
# Requires two arguments: number of runs and results directory with json
run_num=$1
dir=$2
# Parse the json file into experiment's out_dir
for i in $(seq 1 $run_num);
do
mkdir -p $dir/dt-gt-ib-sw/${i}
python3 pyexps/log_parser.py $dir/dt-gt-ib-sw-$i.json
cat $dir/dt-gt-ib-sw/${i}/host.client.0 | awk '/system.pc.simbricks_0:/ {print $1}' > $dir/dt-gt-ib-sw/${i}/host_trim
done
diff $dir/dt-gt-ib-sw/1/host_trim $dir/dt-gt-ib-sw/2/host_trim > $dir/dt-gt-ib-sw/host_trim12.diff
#!/bin/bash
set -x
# Runs the same simulation by default five times.
if [ -z "$1" ]
then
echo "set run num to five"
run_num=5
else
echo "set run num to $1"
run_num=$1
fi
python3 run.py pyexps/ae/determ.py --filter dt-gt-ib-sw --force --verbose --runs=$1
./ae/deterministic-parse.sh $run_num out
#!/bin/bash
SB_BASE="$(readlink -f $(dirname ${BASH_SOURCE[0]})/../..)"
GEM5_BASE="$SB_BASE/sims/external/gem5"
# Runs dist-gem5 data points in Figure 9
# It will generate simulation result files in simbricks/sims/external/gem5/util/dist/test/run-*.out
echo "Start running dist-gem5 data points"
cd $GEM5_BASE/util/dist/test
./exp_run.sh
echo "Done running dist-gem5 data points"
# Process the results and prints
python3 pyexps/ae/data_dist.py $GEM5_BASE/util/dist/test/ > ae/dist_gem5.data
# Runs Simbricks data points in Figure 9
# It will generate simulation results in simbricks/sims/external/gem5/util/simbricks/run-*.out
echo "Start running simbricks data points"
cd $GEM5_BASE/util/simbricks
./exp_run.sh
echo "Done running simbricks data points"
# Process the results and prints
python3 pyexps/ae/data_dist.py $GEM5_BASE/util/simbricks/ > ae/dist_simbricks.data
#!/bin/bash
### Ethernet interface accuracy
# This experimnets runs two ns-3 instances, each runs a host node connected by simbricks ethernet adapter to the other side
# Then it runs a single ns-3 instance with two host nodes connected inside ns-3
SB_BASE="$(readlink -f $(dirname ${BASH_SOURCE[0]})/../..)"
cd ../sims/external/ns-3
export LD_LIBRARY_PATH="build/lib/:$LD_LIBRARY_PATH"
RUN_DIR=$SB_BASE/experiments/out/accuracy
#RUN_DIR=/tmp/simbricks/ns3
rm -rf $RUN_DIR
mkdir -p $RUN_DIR
# Runs the SENDER host first
echo "run sender host"
./simbricks-run.sh simbricks-nicif-example --verbose --uxsoc=$RUN_DIR/uxsoc --shm=$RUN_DIR/shm --syncDelay=500000 --pollDelay=500000 --ethLatency=500000 --sync=1 --sync_mode=0 > $RUN_DIR/sender.out 2>&1 &
pid=$!
ALL_PIDS="$ALL_PIDS $pid"
sleep 1
# Runs the RECEIVER host
echo "run receiver host"
./simbricks-run.sh simbricks-netif-example --verbose --uxsoc=$RUN_DIR/uxsoc --syncDelay=500000 --pollDelay=500000 --ethLatency=500000 --sync=1 > $RUN_DIR/receiver.out 2>&1 &
#
#
pid=$!
ALL_PIDS="$ALL_PIDS $pid"
cleanup() {
echo "Cleaning up"
for p in $ALL_PIDS ; do
kill -KILL $p &>/dev/null
done
date
}
sighandler(){
echo "caught Interrup, aborting..."
cleanup
date
exit 1
}
sleep 2
### Run single instance ns-3
echo "Run single instance ns-3"
./simbricks-run.sh packet-socket-apps --verbose > $RUN_DIR/single_ns3.out 2>&1
echo "parsing data"
cat $RUN_DIR/sender.out | awk '/Time:/ {print "Tx at: "$11}' > $RUN_DIR/sender.time
cat $RUN_DIR/receiver.out | awk '/time/ {print "Rx at: "$4}' > $RUN_DIR/receiver.time
cat $RUN_DIR/single_ns3.out | awk '{if($1 == "At") {print "Rx at: "$3} else if ($2 == "TX") {print "Tx at: "$10}}' > $RUN_DIR/single_ns3.time
echo "cleanup"
cleanup
#!/bin/bash
# Runs simulation with varying number of host configuration
# It will generate raw simulation json file result in out/
python3 run.py pyexps/ae/f7_scale.py --filter host-* --force --verbose
# Process the results and prints
python3 pyexps/ae/data_host_scale.py out/ > ae/host_scale.data
#!/bin/bash
cd pyexps/ae
# Run 2 hosts connected to one switch. Bit rate: 0 GB
echo "Run Run 2 hosts connected to one switch. Bit rate: 0 GB"
./pktgen.sh 2 0 run_switch > ../../out/pktgen/2h1s0b.out 2>&1
python3 data_decmp.py ../../out/pktgen/2h1s0b.out 2>&1
# Run 2 hosts connected to one switch. Bit rate: 100 GB
echo "Run 2 hosts connected to one switch. Bit rate: 100 GB"
./pktgen.sh 2 100 run_switch > ../../out/pktgen/2h1s100b.out 2>&1
python3 data_decmp.py ../../out/pktgen/2h1s100b.out 2>&1
# Run 32 hosts connected to one switch. Bit rate: 0 GB
echo "Run 32 hosts connected to one switch. Bit rate: 0 GB"
./pktgen.sh 32 0 run_switch > ../../out/pktgen/32h1s0b.out 2>&1
python3 data_decmp.py ../../out/pktgen/32h1s0b.out 2>&1
# Run 32 hosts connected to one switch. Bit rate: 100 GB
echo "Run 32 hosts connected to one switch. Bit rate: 100 GB"
./pktgen.sh 32 100 run_switch > ../../out/pktgen/32h1s100b.out 2>&1
python3 data_decmp.py ../../out/pktgen/32h1s100b.out 2>&1
# This part runs decomposed network configuration.
# 32 hosts are spread to 4 ToR switchs
# ToR switches are connected by 1 root switch
# Run Bit rate: 0 GB
echo "Decomposed Run Bit rate: 0 GB"
./pktgen.sh 32 0 4 run_switch_tor > ../../out/pktgen/32hT0b.out 2>&1
python3 data_decmp.py ../../out/pktgen/32hT0b.out 2>&1
# Run Bit rate: 100 GB
echo "Decomposed Run Bit rate: 100 GB"
./pktgen.sh 32 100 4 run_switch_tor > ../../out/pktgen/32hT100b.out 2>&1
python3 data_decmp.py ../../out/pktgen/32hT100b.out 2>&1
\ No newline at end of file
#!/bin/bash
# Runs only combinations listed in Table 1 by default
if [ -z "$1" ] || [ $1 == "selected" ];
then
echo "Run only Table 1 combinations"
python3 run.py pyexps/ae/t1_netperf.py --filter nf-qemu-sw-ib --force --verbose
python3 run.py pyexps/ae/t1_netperf.py --filter nf-gt-ns3-ib --force --verbose
python3 run.py pyexps/ae/t1_netperf.py --filter nf-qemu-sw-cv --force --verbose
python3 run.py pyexps/ae/t1_netperf.py --filter nf-qt-sw-cv --force --verbose
elif [ $1 == "all" ];
then
echo "Run all the combinations in Appendix 4, Table 3"
python3 run.py pyexps/ae/t1_netperf.py --filter=* --force --verbose
fi
# Process the results and prints
python3 pyexps/ae/data_netperf.py out/ > ae/netperf.data
#!/bin/bash
SB_BASE="$(readlink -f $(dirname ${BASH_SOURCE[0]})/../..)"
start_tofino () {
$SDE/run_tofino_model.sh -p nopaxos --log-dir /tmp --json-logs-enable -q &
sleep 5
$SDE/run_switchd.sh -p nopaxos &
sleep 20
$SDE/run_bfshell.sh -b /simbricks/sims/net/tofino/p4/nopaxos_setup.py
}
cleanup () {
killall -9 tofino-model
killall -9 run_tofino_model.sh
killall -9 bf_switchd
killall -9 run_switchd.sh
rm -f /tmp/model.ldjson
}
run_experiment () {
start_tofino
python3 run.py pyexps/ae/nopaxos.py --filter nopaxos-qt-ib-tofino-$1 --force --verbose
cleanup
}
# Run nopaxos with Tofino sequencer in Figure 10
for i in 1 2 3 4 5 6 8 10
do
run_experiment $i
done
# Parse nopaxos result
python3 pyexps/ae/data_nopaxos.py out/ > ae/nopaxos.data
#!/bin/bash
SB_BASE="$(readlink -f $(dirname ${BASH_SOURCE[0]})/../..)"
# Run nopaxos with endhost sequencer in Figure 10
echo "Start running nopaxos with endhost sequencer data points"
python3 run.py pyexps/ae/nopaxos.py --filter nopaxos-qt-ib-ehseq-* --force --verbose
# Run nopaxos with switch sequencer in Figure 10
echo "Start running nopaxos with switch sequencer data points"
python3 run.py pyexps/ae/nopaxos.py --filter nopaxos-qt-ib-swseq-* --force --verbose
# Parse nopaxos result
python3 pyexps/ae/data_nopaxos.py out/ > ae/nopaxos.data
#!/bin/bash
# Runs simulation with varying PCI latency configuration
# It will generate raw simulation json file result in out/
python3 run.py pyexps/ae/f9_latency.py --filter pci-gt-ib-sw-* --force --verbose
# Process the results and prints
python3 pyexps/ae/data_pci_latency.py out/ > ae/pci_latency.data
#!/bin/bash
SB_BASE="$(readlink -f $(dirname ${BASH_SOURCE[0]})/../..)"
NS3_BASE="$SB_BASE/sims/external/ns-3"
# Runs ns-3 data points in Figure 1
# It will generate simulation result files in simbricks/sims/external/ns-3
./pyexps/ae/ns3-dctcp.sh `nproc`
python3 pyexps/ae/data_ns3_dctcp.py $NS3_BASE > ae/dctcp_ns3.data
# Runs Simbricks data points in Figure 1
# It will generate simulation results in out/
python3 run.py pyexps/ae/f1_dctcp.py --filter gt-ib-* --force --verbose --parallel
# Process the results and prints
python3 pyexps/ae/data_sb_dctcp.py out/ > ae/dctcp_simbricks.data
#!/bin/bash
# Runs low event workload (sleep 10) with Simbricks
# It will generate raw simulation json file result in out/
python3 run.py pyexps/ae/no_traffic.py --filter noTraf-gt-ib-sw-sleep --force --verbose
# Runs high event workload (dd) with Simbricks
# It will generate raw simulation json file result in out/
python3 run.py pyexps/ae/no_traffic.py --filter noTraf-gt-ib-sw-busy --force --verbose
# Runs high event workload (dd) without Simbricks (standalone gem5)
# It will generate raw simulation json file result in out/
python3 run.py pyexps/ae/no-simbricks.py --filter no_simb-gt-sleep --force --verbose
# Runs high event workload (dd) without Simbricks (standalone gem5)
# It will generate raw simulation json file result in out/
python3 run.py pyexps/ae/no-simbricks.py --filter no_simb-gt-busy --force --verbose
# Process the results and prints
python3 pyexps/ae/data_sync_overhead.py out/ > ae/sync_overhead.data
#!/bin/bash
if [ -z $1 ]; then
echo "no arg given"
exit -1
fi
# This file executes the BCM command to change the K value for a profile 0.
# Before doing this, one need to assign a profile 0 to a relevant ports.
# copy this file to the machine with switch is connected via serial.
# See the below link for other commands to setup the DCTCP ECN makring.
# https://docs.google.com/presentation/d/1nyJOYap6yiSoxHBIDarSBjxGFVGJtEqSv01oVoJYuoc
K=$1
#This is where it creates a BCM script for minicom to send.
cat <<EOF > bcmscript.txt
send modify mmu_wred_drop_curve_profile_0 0 1 max_drop_rate=0xe max_thd=$K min_thd=$K
EOF
#Execute minicom and send the command above, then send exit command via pipe.
#exit command is stored in a separate file due to use of special characters.
cat exit_minicom.txt | sudo minicom -S bcmscript.txt -C capture.txt -t vt100
#Output will be captured and displayed. No output is expected in a succesful execution.
cat capture.txt
echo "Setting threshold to $K"
import glob
import json
import os
import re
import sys
if len(sys.argv) != 2:
print('Usage: generate_json.py OUTDIR')
sys.exit(1)
cellsz = 208
outdir = sys.argv[1] + '/'
fn_pat = re.compile(r'(\d*)-(\d*)-(\d*).*')
runmap = {}
for f in glob.glob('testbed-results/*_*pktgap/*.txt'):
bn = os.path.basename(f)
m = fn_pat.match(bn)
if not m:
continue
mtu = int(m.group(1))
k = int(m.group(2)) * cellsz
runk = (mtu, k)
clients = runmap.get(runk, {})
with open(f, 'r', encoding='utf-8') as f:
clients['host.client.' + m.group(3)] = {'stdout': f.readlines()}
runmap[runk] = clients
for ((mtu, k), clients) in runmap.items():
ofn = f'{outdir}tb-ib-dumbbell-DCTCPm{k}-{mtu}-1.json'
data = {'sims': clients}
with open(ofn, 'w', encoding='utf-8') as outfile:
json.dump(data, outfile)
#!/bin/bash
# Execute this in a folder with outputs.
# It only uses the total average throughput as output.
DUR=30
echo MTU K Throughput
grep 0.0-$DUR *.txt | sed 's/:/ /g' | sed 's/-/ /g' | sort -h -k2 | awk '{print $1, $2, $11}'
------------------------------------------------------------
Client connecting to 10.9.9.11, TCP port 5001
TCP window size: 416 KByte (WARNING: requested 400 KByte)
------------------------------------------------------------
[ 3] local 10.9.9.12 port 35904 connected with 10.9.9.11 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0- 1.0 sec 121 MBytes 1.02 Gbits/sec
[ 3] 1.0- 2.0 sec 109 MBytes 913 Mbits/sec
[ 3] 2.0- 3.0 sec 107 MBytes 900 Mbits/sec
[ 3] 3.0- 4.0 sec 123 MBytes 1.03 Gbits/sec
[ 3] 4.0- 5.0 sec 123 MBytes 1.03 Gbits/sec
[ 3] 5.0- 6.0 sec 133 MBytes 1.12 Gbits/sec
[ 3] 6.0- 7.0 sec 122 MBytes 1.02 Gbits/sec
[ 3] 7.0- 8.0 sec 122 MBytes 1.02 Gbits/sec
[ 3] 8.0- 9.0 sec 137 MBytes 1.15 Gbits/sec
[ 3] 9.0-10.0 sec 132 MBytes 1.11 Gbits/sec
[ 3] 10.0-11.0 sec 116 MBytes 977 Mbits/sec
[ 3] 11.0-12.0 sec 115 MBytes 963 Mbits/sec
[ 3] 12.0-13.0 sec 116 MBytes 973 Mbits/sec
[ 3] 13.0-14.0 sec 133 MBytes 1.11 Gbits/sec
[ 3] 14.0-15.0 sec 132 MBytes 1.11 Gbits/sec
[ 3] 15.0-16.0 sec 133 MBytes 1.11 Gbits/sec
[ 3] 16.0-17.0 sec 135 MBytes 1.13 Gbits/sec
[ 3] 17.0-18.0 sec 133 MBytes 1.12 Gbits/sec
[ 3] 18.0-19.0 sec 135 MBytes 1.13 Gbits/sec
[ 3] 19.0-20.0 sec 133 MBytes 1.12 Gbits/sec
[ 3] 20.0-21.0 sec 134 MBytes 1.13 Gbits/sec
[ 3] 21.0-22.0 sec 132 MBytes 1.11 Gbits/sec
[ 3] 22.0-23.0 sec 131 MBytes 1.10 Gbits/sec
[ 3] 23.0-24.0 sec 126 MBytes 1.05 Gbits/sec
[ 3] 24.0-25.0 sec 114 MBytes 956 Mbits/sec
[ 3] 25.0-26.0 sec 114 MBytes 960 Mbits/sec
[ 3] 26.0-27.0 sec 119 MBytes 1.00 Gbits/sec
[ 3] 27.0-28.0 sec 117 MBytes 978 Mbits/sec
[ 3] 28.0-29.0 sec 130 MBytes 1.09 Gbits/sec
[ 3] 29.0-30.0 sec 116 MBytes 972 Mbits/sec
[ 3] 0.0-30.0 sec 3.65 GBytes 1.05 Gbits/sec
------------------------------------------------------------
Client connecting to 10.9.9.11, TCP port 5001
TCP window size: 416 KByte (WARNING: requested 400 KByte)
------------------------------------------------------------
[ 3] local 10.9.9.13 port 59318 connected with 10.9.9.11 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0- 1.0 sec 117 MBytes 985 Mbits/sec
[ 3] 1.0- 2.0 sec 134 MBytes 1.12 Gbits/sec
[ 3] 2.0- 3.0 sec 130 MBytes 1.09 Gbits/sec
[ 3] 3.0- 4.0 sec 134 MBytes 1.12 Gbits/sec
[ 3] 4.0- 5.0 sec 134 MBytes 1.13 Gbits/sec
[ 3] 5.0- 6.0 sec 137 MBytes 1.15 Gbits/sec
[ 3] 6.0- 7.0 sec 134 MBytes 1.13 Gbits/sec
[ 3] 7.0- 8.0 sec 134 MBytes 1.13 Gbits/sec
[ 3] 8.0- 9.0 sec 138 MBytes 1.15 Gbits/sec
[ 3] 9.0-10.0 sec 133 MBytes 1.12 Gbits/sec
[ 3] 10.0-11.0 sec 133 MBytes 1.12 Gbits/sec
[ 3] 11.0-12.0 sec 133 MBytes 1.11 Gbits/sec
[ 3] 12.0-13.0 sec 131 MBytes 1.10 Gbits/sec
[ 3] 13.0-14.0 sec 109 MBytes 913 Mbits/sec
[ 3] 14.0-15.0 sec 109 MBytes 911 Mbits/sec
[ 3] 15.0-16.0 sec 112 MBytes 938 Mbits/sec
[ 3] 16.0-17.0 sec 108 MBytes 905 Mbits/sec
[ 3] 17.0-18.0 sec 108 MBytes 902 Mbits/sec
[ 3] 18.0-19.0 sec 108 MBytes 910 Mbits/sec
[ 3] 19.0-20.0 sec 109 MBytes 916 Mbits/sec
[ 3] 20.0-21.0 sec 109 MBytes 912 Mbits/sec
[ 3] 21.0-22.0 sec 106 MBytes 888 Mbits/sec
[ 3] 22.0-23.0 sec 108 MBytes 905 Mbits/sec
[ 3] 23.0-24.0 sec 128 MBytes 1.07 Gbits/sec
[ 3] 24.0-25.0 sec 133 MBytes 1.12 Gbits/sec
[ 3] 25.0-26.0 sec 134 MBytes 1.12 Gbits/sec
[ 3] 26.0-27.0 sec 133 MBytes 1.12 Gbits/sec
[ 3] 27.0-28.0 sec 135 MBytes 1.13 Gbits/sec
[ 3] 28.0-29.0 sec 134 MBytes 1.12 Gbits/sec
[ 3] 29.0-30.0 sec 129 MBytes 1.08 Gbits/sec
[ 3] 0.0-30.0 sec 3.65 GBytes 1.04 Gbits/sec
------------------------------------------------------------
Client connecting to 10.9.9.11, TCP port 5001
TCP window size: 416 KByte (WARNING: requested 400 KByte)
------------------------------------------------------------
[ 3] local 10.9.9.12 port 35538 connected with 10.9.9.11 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0- 1.0 sec 322 MBytes 2.70 Gbits/sec
[ 3] 1.0- 2.0 sec 392 MBytes 3.29 Gbits/sec
[ 3] 2.0- 3.0 sec 421 MBytes 3.53 Gbits/sec
[ 3] 3.0- 4.0 sec 462 MBytes 3.87 Gbits/sec
[ 3] 4.0- 5.0 sec 356 MBytes 2.98 Gbits/sec
[ 3] 5.0- 6.0 sec 266 MBytes 2.23 Gbits/sec
[ 3] 6.0- 7.0 sec 286 MBytes 2.40 Gbits/sec
[ 3] 7.0- 8.0 sec 222 MBytes 1.86 Gbits/sec
[ 3] 8.0- 9.0 sec 346 MBytes 2.91 Gbits/sec
[ 3] 9.0-10.0 sec 336 MBytes 2.81 Gbits/sec
[ 3] 10.0-11.0 sec 380 MBytes 3.18 Gbits/sec
[ 3] 11.0-12.0 sec 341 MBytes 2.86 Gbits/sec
[ 3] 12.0-13.0 sec 441 MBytes 3.70 Gbits/sec
[ 3] 13.0-14.0 sec 313 MBytes 2.63 Gbits/sec
[ 3] 14.0-15.0 sec 254 MBytes 2.13 Gbits/sec
[ 3] 15.0-16.0 sec 445 MBytes 3.73 Gbits/sec
[ 3] 16.0-17.0 sec 351 MBytes 2.94 Gbits/sec
[ 3] 17.0-18.0 sec 359 MBytes 3.01 Gbits/sec
[ 3] 18.0-19.0 sec 301 MBytes 2.52 Gbits/sec
[ 3] 19.0-20.0 sec 232 MBytes 1.94 Gbits/sec
[ 3] 20.0-21.0 sec 376 MBytes 3.15 Gbits/sec
[ 3] 21.0-22.0 sec 369 MBytes 3.09 Gbits/sec
[ 3] 22.0-23.0 sec 211 MBytes 1.77 Gbits/sec
[ 3] 23.0-24.0 sec 156 MBytes 1.30 Gbits/sec
[ 3] 24.0-25.0 sec 296 MBytes 2.48 Gbits/sec
[ 3] 25.0-26.0 sec 346 MBytes 2.90 Gbits/sec
[ 3] 26.0-27.0 sec 371 MBytes 3.11 Gbits/sec
[ 3] 27.0-28.0 sec 251 MBytes 2.10 Gbits/sec
[ 3] 28.0-29.0 sec 411 MBytes 3.45 Gbits/sec
[ 3] 29.0-30.0 sec 396 MBytes 3.33 Gbits/sec
[ 3] 0.0-30.0 sec 9.77 GBytes 2.80 Gbits/sec
------------------------------------------------------------
Client connecting to 10.9.9.11, TCP port 5001
TCP window size: 416 KByte (WARNING: requested 400 KByte)
------------------------------------------------------------
[ 3] local 10.9.9.13 port 59044 connected with 10.9.9.11 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0- 1.0 sec 332 MBytes 2.79 Gbits/sec
[ 3] 1.0- 2.0 sec 229 MBytes 1.92 Gbits/sec
[ 3] 2.0- 3.0 sec 239 MBytes 2.00 Gbits/sec
[ 3] 3.0- 4.0 sec 118 MBytes 994 Mbits/sec
[ 3] 4.0- 5.0 sec 366 MBytes 3.07 Gbits/sec
[ 3] 5.0- 6.0 sec 368 MBytes 3.08 Gbits/sec
[ 3] 6.0- 7.0 sec 497 MBytes 4.17 Gbits/sec
[ 3] 7.0- 8.0 sec 346 MBytes 2.90 Gbits/sec
[ 3] 8.0- 9.0 sec 309 MBytes 2.59 Gbits/sec
[ 3] 9.0-10.0 sec 169 MBytes 1.42 Gbits/sec
[ 3] 10.0-11.0 sec 454 MBytes 3.81 Gbits/sec
[ 3] 11.0-12.0 sec 293 MBytes 2.46 Gbits/sec
[ 3] 12.0-13.0 sec 334 MBytes 2.80 Gbits/sec
[ 3] 13.0-14.0 sec 351 MBytes 2.95 Gbits/sec
[ 3] 14.0-15.0 sec 324 MBytes 2.72 Gbits/sec
[ 3] 15.0-16.0 sec 171 MBytes 1.44 Gbits/sec
[ 3] 16.0-17.0 sec 396 MBytes 3.33 Gbits/sec
[ 3] 17.0-18.0 sec 331 MBytes 2.78 Gbits/sec
[ 3] 18.0-19.0 sec 376 MBytes 3.15 Gbits/sec
[ 3] 19.0-20.0 sec 418 MBytes 3.51 Gbits/sec
[ 3] 20.0-21.0 sec 352 MBytes 2.95 Gbits/sec
[ 3] 21.0-22.0 sec 313 MBytes 2.63 Gbits/sec
[ 3] 22.0-23.0 sec 316 MBytes 2.65 Gbits/sec
[ 3] 23.0-24.0 sec 365 MBytes 3.06 Gbits/sec
[ 3] 24.0-25.0 sec 335 MBytes 2.81 Gbits/sec
[ 3] 25.0-26.0 sec 507 MBytes 4.25 Gbits/sec
[ 3] 26.0-27.0 sec 312 MBytes 2.62 Gbits/sec
[ 3] 27.0-28.0 sec 319 MBytes 2.68 Gbits/sec
[ 3] 28.0-29.0 sec 363 MBytes 3.05 Gbits/sec
[ 3] 29.0-30.0 sec 248 MBytes 2.08 Gbits/sec
[ 3] 0.0-30.0 sec 9.62 GBytes 2.76 Gbits/sec
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment