added ipv6 iperf tests; refined avg dd speed calculation

This commit is contained in:
Mason Rowe 2019-10-06 22:17:24 -04:00
parent 2249d6f78d
commit d4cc9a23ba
2 changed files with 100 additions and 61 deletions

View File

@ -10,7 +10,7 @@ This script isn't an attempt to be a golden standard. It's just yet another benc
`curl -s https://raw.githubusercontent.com/masonr/yet-another-bench-script/master/yabs.sh | bash`
This script has been tested on CentOS 7, Debian 9, Debian 10, Fedora 30, Ubuntu 16.04, and Ubuntu 18.04. It is designed to not require any external dependencies.
This script has been tested on CentOS 7, Debian 9, Debian 10, Fedora 30, Ubuntu 16.04, and Ubuntu 18.04. It is designed to not require any external dependencies nor elevated privileges.
## Tests Conducted
@ -23,51 +23,63 @@ This script has been tested on CentOS 7, Debian 9, Debian 10, Fedora 30, Ubuntu
```
# ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## #
# Yet-Another-Bench-Script #
# v2019-10-05 #
# v2019-10-06 #
# https://github.com/masonr/yet-another-bench-script #
# ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## #
Sat Oct 5 21:44:13 EDT 2019
Sun Oct 6 22:03:26 EDT 2019
Basic System Information:
---------------------------------
Processor : Intel(R) Xeon(R) CPU E5-2670 0 @ 2.60GHz
CPU cores : 32 @ 1200.563 MHz
Processor : Intel(R) Xeon(R) CPU E3-1230 V2 @ 3.30GHz
CPU cores : 8 @ 1600.091 MHz
AES-NI : ✔ Enabled
VM-x/AMD-V : ❌ Disabled
RAM : 62G
Swap : 59G
Disk : 44T
RAM : 31G
Swap : 7.5G
Disk : 213G
dd Disk Speed Tests:
---------------------------------
| Test 1 | Test 2 | Test 3 | Avg
| | | |
Write | 275 MB/s | 177 MB/s | 177 MB/s | 209 MB/s
Read* | 537 MB/s | 539 MB/s | 536 MB/s | 537 MB/s
Write | 361 MB/s | 357 MB/s | 357 MB/s | 358.333 MB/s
Read* | 409 MB/s | 409 MB/s | 410 MB/s | 409.333 MB/s
iperf3 Network Speed Tests:
iperf3 Network Speed Tests (IPv4):
---------------------------------
Provider | Location (Link) | Send Speed | Recv Speed
| | |
Bouygues Telecom | Paris, FR (10G) | 160 Mbits/sec | 158 Mbits/sec
Online.net | Paris, FR (10G) | 165 Mbits/sec | 94.2 Mbits/sec
Severius | The Netherlands (10G) | 161 Mbits/sec | 151 Mbits/sec
Worldstream | The Netherlands (10G) | 166 Mbits/sec | 88.1 Mbits/sec
wilhelm.tel | Hamburg, DE (10G) | 160 Mbits/sec | 148 Mbits/sec
Biznet | Bogor, Indonesia (1G) | 118 Mbits/sec | 57.5 Mbits/sec
Hostkey | Moscow, RU (1G) | 148 Mbits/sec | 135 Mbits/sec
Velocity Online | Tallahassee, FL, US (1G) | 179 Mbits/sec | 133 Mbits/sec
Airstream Communications | Eau Claire, WI, US (10G) | 186 Mbits/sec | 150 Mbits/sec
Hurricane Electric | Fremont, CA, US (1G) | 168 Mbits/sec | busy
Bouygues Telecom | Paris, FR (10G) | 766 Mbits/sec | 195 Mbits/sec
Online.net | Paris, FR (10G) | 771 Mbits/sec | 156 Mbits/sec
Severius | The Netherlands (10G) | 638 Mbits/sec | 45.5 Mbits/sec
Worldstream | The Netherlands (10G) | 748 Mbits/sec | 56.7 Mbits/sec
wilhelm.tel | Hamburg, DE (10G) | 756 Mbits/sec | 69.1 Mbits/sec
Biznet | Bogor, Indonesia (1G) | busy | busy
Hostkey | Moscow, RU (1G) | 722 Mbits/sec | 489 Mbits/sec
Velocity Online | Tallahassee, FL, US (1G) | 528 Mbits/sec | 374 Mbits/sec
Airstream Communications | Eau Claire, WI, US (10G) | 825 Mbits/sec | 156 Mbits/sec
Hurricane Electric | Fremont, CA, US (1G) | 782 Mbits/sec | busy
iperf3 Network Speed Tests (IPv6):
---------------------------------
Provider | Location (Link) | Send Speed | Recv Speed
| | |
Bouygues Telecom | Paris, FR (10G) | 463 Mbits/sec | 186 Mbits/sec
Online.net | Paris, FR (10G) | 713 Mbits/sec | 75.7 Mbits/sec
Severius | The Netherlands (10G) | 753 Mbits/sec | 73.5 Mbits/sec
Worldstream | The Netherlands (10G) | 740 Mbits/sec | 58.6 Mbits/sec
wilhelm.tel | Hamburg, DE (10G) | 744 Mbits/sec | 75.0 Mbits/sec
Airstream Communications | Eau Claire, WI, US (10G) | 473 Mbits/sec | 149 Mbits/sec
Hurricane Electric | Fremont, CA, US (1G) | busy | busy
Geekbench 4 Benchmark Test:
---------------------------------
Test | Value
|
Single Core | 3207
Multi Core | 37289
Full Test | https://browser.geekbench.com/v4/cpu/14763522
Single Core | 4012
Multi Core | 13007
Full Test | https://browser.geekbench.com/v4/cpu/14768101
```

101
yabs.sh
View File

@ -2,7 +2,7 @@
echo -e '# ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## #'
echo -e '# Yet-Another-Bench-Script #'
echo -e '# v2019-10-05 #'
echo -e '# v2019-10-06 #'
echo -e '# https://github.com/masonr/yet-another-bench-script #'
echo -e '# ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## #'
@ -49,20 +49,20 @@ function dd_test {
[[ "$OS" == *"CentOS"* ]] && DD_WRITE_TEST=$(echo $DD_WRITE_TEST | awk '{ print $8 " " $9 }') || DD_WRITE_TEST=$(echo $DD_WRITE_TEST | awk '{ print $10 " " $11 }')
DD_WRITE_TEST_RES+=( "$DD_WRITE_TEST" )
VAL=$(echo $DD_WRITE_TEST | cut -d " " -f 1)
[[ "$DD_WRITE_TEST" == *"GB"* ]] && VAL=$(awk -v a="$VAL" 'BEGIN { print a * 1000 }')
DD_WRITE_TEST_AVG=$(awk -v a="$DD_WRITE_TEST_AVG" -v b="$VAL" 'BEGIN { print a + b }')
DD_READ_TEST=$(dd if=$DATE.test of=/dev/null bs=64k |& grep copied)
[[ "$OS" == *"CentOS"* ]] && DD_READ_TEST=$(echo $DD_READ_TEST | awk '{ print $8 " " $9 }') || DD_READ_TEST=$(echo $DD_READ_TEST | awk '{ print $10 " " $11 }')
DD_READ_TEST_RES+=( "$DD_READ_TEST" )
VAL=$(echo $DD_READ_TEST | cut -d " " -f 1)
[[ "$DD_READ_TEST" == *"GB"* ]] && VAL=$(awk -v a="$VAL" 'BEGIN { print a * 1000 }')
DD_READ_TEST_AVG=$(awk -v a="$DD_READ_TEST_AVG" -v b="$VAL" 'BEGIN { print a + b }')
I=$(( $I + 1 ))
done
DD_WRITE_TEST_AVG=$(awk -v a="$DD_WRITE_TEST_AVG" 'BEGIN { print a / 3 }')
DD_WRITE_TEST_UNIT=$(echo $DD_WRITE_TEST | awk '{ print $2 }')
DD_READ_TEST_AVG=$(awk -v a="$DD_READ_TEST_AVG" 'BEGIN { print a / 3 }')
DD_READ_TEST_UNIT=$(echo $DD_READ_TEST | awk '{ print $2 }')
}
touch $DATE.test 2> /dev/null
@ -70,6 +70,19 @@ if [ -f "$DATE.test" ]; then
dd_test
rm $DATE.test
if [ $(echo $DD_WRITE_TEST_AVG | cut -d "." -f 1) -ge 1000 ]; then
DD_WRITE_TEST_AVG=$(awk -v a="$DD_WRITE_TEST_AVG" 'BEGIN { print a / 1000 }')
DD_WRITE_TEST_UNIT="GB/s"
else
DD_WRITE_TEST_UNIT="MB/s"
fi
if [ $(echo $DD_READ_TEST_AVG | cut -d "." -f 1) -ge 1000 ]; then
DD_READ_TEST_AVG=$(awk -v a="$DD_READ_TEST_AVG" 'BEGIN { print a / 1000 }')
DD_READ_TEST_UNIT="GB/s"
else
DD_READ_TEST_UNIT="MB/s"
fi
echo -en "\e[1A"; echo -e "\e[0K\r"
echo -e "dd Disk Speed Tests:"
echo -e "---------------------------------"
@ -102,8 +115,7 @@ function iperf_test {
SPEED=$(echo "${IPERF_RUN_SEND}" | grep SUM | grep receiver | awk '{ print $6 }')
[[ -z $SPEED || "$SPEED" == "0.00" ]] && I=$(( $I + 1 )) || I=10
else
[[ "$IPERF_RUN_SEND" == *"unable to connect"* ]] && I=10 || I=$(( $I + 1 ))
sleep 2
[[ "$IPERF_RUN_SEND" == *"unable to connect"* ]] && I=10 || I=$(( $I + 1 )) && sleep 2
fi
done
@ -116,8 +128,7 @@ function iperf_test {
SPEED=$(echo "${IPERF_RUN_RECV}" | grep SUM | grep receiver | awk '{ print $6 }')
[[ -z $SPEED || "$SPEED" == "0.00" ]] && J=$(( $J + 1 )) || J=10
else
[[ "$IPERF_RUN_RECV" == *"unable to connect"* ]] && J=10 || J=$(( $J + 1 ))
sleep 2
[[ "$IPERF_RUN_RECV" == *"unable to connect"* ]] && J=10 || J=$(( $J + 1 )) && sleep 2
fi
done
@ -125,41 +136,57 @@ function iperf_test {
IPERF_RECVRESULT="$(echo "${IPERF_RUN_RECV}" | grep SUM | grep receiver)"
}
function launch_iperf {
MODE=$1
echo -e
echo -e "iperf3 Network Speed Tests ($MODE):"
echo -e "---------------------------------"
printf "%-25s | %-25s | %-15s | %-15s\n" "Provider" "Location (Link)" "Send Speed" "Recv Speed"
printf "%-25s | %-25s | %-15s | %-15s\n"
for (( i = 0; i < IPERF_LOCS_NUM; i++ )); do
if [[ "${IPERF_LOCS[i*5+4]}" == *"$MODE"* ]]; then
echo -e "Performing $MODE iperf3 test to ${IPERF_LOCS[i*5+2]}..."
iperf_test "${IPERF_LOCS[i*5]}" "${IPERF_LOCS[i*5+1]}"
echo -en "\e[1A"
IPERF_SENDRESULT_VAL=$(echo $IPERF_SENDRESULT | awk '{ print $6 }')
IPERF_SENDRESULT_UNIT=$(echo $IPERF_SENDRESULT | awk '{ print $7 }')
IPERF_RECVRESULT_VAL=$(echo $IPERF_RECVRESULT | awk '{ print $6 }')
IPERF_RECVRESULT_UNIT=$(echo $IPERF_RECVRESULT | awk '{ print $7 }')
[ -z "$IPERF_SENDRESULT_VAL" ] && IPERF_SENDRESULT_VAL="busy"
[ -z "$IPERF_RECVRESULT_VAL" ] && IPERF_RECVRESULT_VAL="busy"
printf "%-25s | %-25s | %-15s | %-15s\n" "${IPERF_LOCS[i*5+2]}" "${IPERF_LOCS[i*5+3]}" "$IPERF_SENDRESULT_VAL $IPERF_SENDRESULT_UNIT" "$IPERF_RECVRESULT_VAL $IPERF_RECVRESULT_UNIT"
fi
done
}
IPV4_CHECK=$(ping -c 1 -W 4 -4 google.com)
[[ "$IPV4_CHECK" == *"1 received"* ]] && IPV4_CHECK="True" || IPV4_CHECK=""
IPV6_CHECK=$(ping -c 1 -W 4 -6 ipv6.google.com)
[[ "$IPV6_CHECK" == *"1 received"* ]] && IPV6_CHECK="True" || IPV6_CHECK=""
IPERF_LOCS=( \
"bouygues.iperf.fr" "5200-5209" "Bouygues Telecom" "Paris, FR (10G)" \
"ping.online.net" "5200-5209" "Online.net" "Paris, FR (10G)" \
"speedtest.serverius.net" "5002-5002" "Severius" "The Netherlands (10G)" \
"iperf.worldstream.nl" "5201-5201" "Worldstream" "The Netherlands (10G)" \
"speedtest.wtnet.de" "5200-5209" "wilhelm.tel" "Hamburg, DE (10G)" \
"iperf.biznetnetworks.com" "5201-5203" "Biznet" "Bogor, Indonesia (1G)" \
"speedtest.hostkey.ru" "5200-5203" "Hostkey" "Moscow, RU (1G)" \
"iperf3.velocityonline.net" "5201-5210" "Velocity Online" "Tallahassee, FL, US (1G)" \
"iperf.airstreamcomm.net" "5201-5205" "Airstream Communications" "Eau Claire, WI, US (10G)" \
"iperf.he.net" "5201-5201" "Hurricane Electric" "Fremont, CA, US (1G)" \
"bouygues.iperf.fr" "5200-5209" "Bouygues Telecom" "Paris, FR (10G)" "IPv4|IPv6" \
"ping.online.net" "5200-5209" "Online.net" "Paris, FR (10G)" "IPv4" \
"ping6.online.net" "5200-5209" "Online.net" "Paris, FR (10G)" "IPv6" \
"speedtest.serverius.net" "5002-5002" "Severius" "The Netherlands (10G)" "IPv4|IPv6" \
"iperf.worldstream.nl" "5201-5201" "Worldstream" "The Netherlands (10G)" "IPv4|IPv6" \
"speedtest.wtnet.de" "5200-5209" "wilhelm.tel" "Hamburg, DE (10G)" "IPv4|IPv6" \
"iperf.biznetnetworks.com" "5201-5203" "Biznet" "Bogor, Indonesia (1G)" "IPv4" \
"speedtest.hostkey.ru" "5200-5203" "Hostkey" "Moscow, RU (1G)" "IPv4" \
"iperf3.velocityonline.net" "5201-5210" "Velocity Online" "Tallahassee, FL, US (1G)" "IPv4" \
"iperf.airstreamcomm.net" "5201-5205" "Airstream Communications" "Eau Claire, WI, US (10G)" "IPv4|IPv6" \
"iperf.he.net" "5201-5201" "Hurricane Electric" "Fremont, CA, US (1G)" "IPv4|IPv6" \
)
IPERF_LOCS_NUM=${#IPERF_LOCS[@]}
IPERF_LOCS_NUM=$((IPERF_LOCS_NUM / 4))
IPERF_LOCS_NUM=$((IPERF_LOCS_NUM / 5))
echo -e
echo -e "iperf3 Network Speed Tests:"
echo -e "---------------------------------"
printf "%-25s | %-25s | %-15s | %-15s\n" "Provider" "Location (Link)" "Send Speed" "Recv Speed"
printf "%-25s | %-25s | %-15s | %-15s\n"
[ -z "$IPv4_CHECK" ] && launch_iperf "IPv4"
[ -z "$IPv6_CHECK" ] && launch_iperf "IPv6"
for (( i = 0; i < IPERF_LOCS_NUM; i++ )); do
echo -e "Performing iperf3 test to ${IPERF_LOCS[i*4+2]}..."
iperf_test "${IPERF_LOCS[i*4]}" "${IPERF_LOCS[i*4+1]}"
echo -en "\e[1A"
IPERF_SENDRESULT_VAL=$(echo $IPERF_SENDRESULT | awk '{ print $6 }')
IPERF_SENDRESULT_UNIT=$(echo $IPERF_SENDRESULT | awk '{ print $7 }')
IPERF_RECVRESULT_VAL=$(echo $IPERF_RECVRESULT | awk '{ print $6 }')
IPERF_RECVRESULT_UNIT=$(echo $IPERF_RECVRESULT | awk '{ print $7 }')
[ -z "$IPERF_SENDRESULT_VAL" ] && IPERF_SENDRESULT_VAL="busy"
[ -z "$IPERF_RECVRESULT_VAL" ] && IPERF_RECVRESULT_VAL="busy"
printf "%-25s | %-25s | %-15s | %-15s\n" "${IPERF_LOCS[i*4+2]}" "${IPERF_LOCS[i*4+3]}" "$IPERF_SENDRESULT_VAL $IPERF_SENDRESULT_UNIT" "$IPERF_RECVRESULT_VAL $IPERF_RECVRESULT_UNIT"
done
echo -e "Performing Geekbench 4 CPU performance test. This may take a couple minutes to complete..."
echo -e "Performing Geekbench 4 benchmark test. This may take a couple minutes to complete..."
GEEKBENCH_PATH=$YABS_PATH/geekbench
mkdir -p $GEEKBENCH_PATH