Benutzer:Emploi: Unterschied zwischen den Versionen
Emploi (Diskussion | Beiträge) K (→Verwaltung) |
Emploi (Diskussion | Beiträge) (→Codeschnipsel: Benchmark) |
||
Zeile 136: | Zeile 136: | ||
taskset -pc 0 $(grep local/bin/bmxd /tmp/mc | cut -b 1-5) | taskset -pc 0 $(grep local/bin/bmxd /tmp/mc | cut -b 1-5) | ||
taskset -pc 2 $(grep fastd2.conf /tmp/mc | cut -b 1-5) | taskset -pc 2 $(grep fastd2.conf /tmp/mc | cut -b 1-5) | ||
+ | |||
+ | ===OpenSSL Benchmark=== | ||
+ | |||
+ | OpenSSL Mulitcore Bench für Linux/Openwrt/EdgeOS. Am Besten per vi Dateiname in /tmp/ erstellen, chmod +x Dateiname & Go ./Dateiname<br> | ||
+ | Es werden Benchs für 1,2,4 und MaximaleKerne/2 und Maximale Kerne erstellt, sofern soviele Kerne vorhanden sind | ||
+ | |||
+ | #Cores ermitteln und ins temp schreiben | ||
+ | cores=$(grep -c 'processor' /proc/cpuinfo) | ||
+ | if [ $cores -gt 1 ]; then sort /proc/cpuinfo | uniq -u>/tmp/ci; sort -r /proc/cpuinfo | uniq -d>>/tmp/ci; else cat /proc/cpuinfo>/tmp/ci; fi | ||
+ | benchmarks='md5 sha1 sha256 sha512 des des-ede3 aes-128-cbc aes-192-cbc aes-256-cbc rsa2048 dsa2048' | ||
+ | #Benchmarks Single- und Multicore | ||
+ | rm /tmp/sslspeed* | ||
+ | openssl speed -multi 1 $benchmarks | tee /tmp/sslspeed1 | ||
+ | if [ $cores -gt 1 ]; then openssl speed -multi 2 $benchmarks | tee /tmp/sslspeed2; fi | ||
+ | if [ $cores -gt 3 ]; then openssl speed -multi 4 $benchmarks | tee /tmp/sslspeed4; fi | ||
+ | if [ $cores -gt 4 ] && [ $cores -ne 8 ]; then openssl speed -multi $(($cores/2)) $benchmarks | tee /tmp/sslspeed$(($cores/2)); fi | ||
+ | if [ $cores -gt 4 ]; then openssl speed -multi $cores $benchmarks | tee /tmp/sslspeed$cores; fi | ||
+ | #Auswertung | ||
+ | echo Systeminfos BogoMIPS OpenSSL-Version $benchmarks>/tmp/speed | ||
+ | echo -n '1'>>/tmp/speed | ||
+ | echo -n `awk -v FS=": " -v ORS="" '/(model name|cpu model|system type|bogomips|BogoMIPS)/ { print "| " $2 " " } END { print "" }' /tmp/ci`>>/tmp/speed | ||
+ | echo `awk -v ORS="" '$1 ~ /OpenSSL/ {print "| " $2 " |"} $1 ~ /(md5|sha)/ {print " " $5 " |"} $1 ~ /(des|aes)/ {b = b " " $6 " |"} $1 ~ /(rsa|dsa)/ {print b " " $6 " | " $7 " ";b=""} END { print "|" }' /tmp/sslspeed1 | sed 's/\.\(..\)k/\10/g'`>>/tmp/speed | ||
+ | if [ $cores -gt 1 ]; then echo -n '2'>>/tmp/speed; echo -n `awk -v FS=": " -v ORS="" '/(model name|cpu model|system type|bogomips|BogoMIPS)/ { print "| " $2 " " } END { print "" }' /tmp/ci`>>/tmp/speed; echo `awk -v ORS="" '$1 ~ /OpenSSL/ {print "| " $2 " |"} $1 ~ /(md5|sha)/ {print " " $5 " |"} $1 ~ /(des|aes)/ {b = b " " $6 " |"} $1 ~ /(rsa|dsa)/ {print b " " $6 " | " $7 " ";b=""} END { print "|" }' /tmp/sslspeed2 | sed 's/\.\(..\)k/\10/g'`>>/tmp/speed; fi | ||
+ | if [ $cores -gt 3 ]; then echo -n '4'>>/tmp/speed; echo -n `awk -v FS=": " -v ORS="" '/(model name|cpu model|system type|bogomips|BogoMIPS)/ { print "| " $2 " " } END { print "" }' /tmp/ci`>>/tmp/speed; echo `awk -v ORS="" '$1 ~ /OpenSSL/ {print "| " $2 " |"} $1 ~ /(md5|sha)/ {print " " $5 " |"} $1 ~ /(des|aes)/ {b = b " " $6 " |"} $1 ~ /(rsa|dsa)/ {print b " " $6 " | " $7 " ";b=""} END { print "|" }' /tmp/sslspeed4 | sed 's/\.\(..\)k/\10/g'`>>/tmp/speed; fi | ||
+ | if [ $cores -gt 4 ] && [ $cores -ne 8 ]; then echo -n $(($cores/2))>>/tmp/speed; echo -n `awk -v FS=": " -v ORS="" '/(model name|cpu model|system type|bogomips|BogoMIPS)/ { print "| " $2 " " } END { print "" }' /tmp/ci`>>/tmp/speed; echo `awk -v ORS="" '$1 ~ /OpenSSL/ {print "| " $2 " |"} $1 ~ /(md5|sha)/ {print " " $5 " |"} $1 ~ /(des|aes)/ {b = b " " $6 " |"} $1 ~ /(rsa|dsa)/ {print b " " $6 " | " $7 " ";b=""} END { print "|" }' /tmp/sslspeed$(($cores/2)) | sed 's/\.\(..\)k/\10/g'`>>/tmp/speed; fi | ||
+ | if [ $cores -gt 4 ]; then echo -n $cores>>/tmp/speed; echo -n `awk -v FS=": " -v ORS="" '/(model name|cpu model|system type|bogomips|BogoMIPS)/ { print "| " $2 " " } END { print "" }' /tmp/ci`>>/tmp/speed; echo `awk -v ORS="" '$1 ~ /OpenSSL/ {print "| " $2 " |"} $1 ~ /(md5|sha)/ {print " " $5 " |"} $1 ~ /(des|aes)/ {b = b " " $6 " |"} $1 ~ /(rsa|dsa)/ {print b " " $6 " | " $7 " ";b=""} END { print "|" }' /tmp/sslspeed$cores | sed 's/\.\(..\)k/\10/g'`>>/tmp/speed; fi | ||
+ | cat /tmp/speed | ||
+ | /tmp > cat speed | ||
== Proxmox-bmxd == | == Proxmox-bmxd == |
Version vom 16. August 2019, 13:56 Uhr
Inhaltsverzeichnis
Verwaltung
Gateways:
Node | VPN | Hoster | Exit |
---|---|---|---|
2 | 3 | Webtropia (vps, nopower) | AirVPN de |
51001 | it4r | Max | AirVPN at |
Andere Projekte
BOINC im Team Planet 3DNow!. Statistiken
Spickzettel
Speedtest zwischen Knoten:
Router:
alt: /usr/lib/ddmesh/ddmesh-nuttcp.sh 10.200.x.y
Server:
iperf3 -c 10.200.x.y
alt: [watch] /usr/bin/ddmesh-nuttcp.sh 10.200.x.y
Speedtest
Testfile zum Knoten laden (auf Server und Router mit Internetkabelverbindung erfolgt das ohne VPN) und verwerfen:
wget -O /dev/null http://speedtest.wdc01.softlayer.com/downloads/test10.zip (10MByte)
20x
for i in $(seq 20); do wget -O /dev/null "http://speedtest.dal01.softlayer.com/downloads/test100.zip" >>/dev/null; done
unter Nutzung eines bestimmten Interface
curl --interface xxx "http://speedtest.dal01.softlayer.com/downloads/test100.zip" > /dev/null
bmxd
bmxd -c --gateways
verfügbare Gateways
bmxd -c -p 10.200.x.y
bevorzugtes Gateway auswählen
bmxd -cid8
Übersicht
bmxd -c -r [****]
Routingclass, sofern es kein bevorzugtes Gateway gibt oder jenes ausgefallen ist:
*0 kein Tunnel, default route
*1 Permanent das „schnellste“ Gateway, basierend auf Ankündigung des Gateways
*2 Permanent das stabilste Gateway, basierend auf den Messergebnissen des Protokolls
*3 Dynamisch Umschaltung auf das stabilste Gateway (siehe auch "gateway_hysteresis", in der Hilfe)
Doku
B.A.T.M.A.N. daemon - https://www.open-mesh.org/projects/batmand/wiki/Doc-overview
Server
Server mit anderem Server verbinden:
/etc/init.d/S53backbone-fastd2 add_connect vpnx.freifunk-dresden.de 5002 pubkey
Keys liegen unter
/etc/fastd/peers (alt) oder /etc/fastd/peers2 (aktuell)
Banana PI M2 Berry
Temaeratur:
while :; do clear; cat /sys/devices/virtual/thermal/thermal_zone0/temp; sleep 1; done
Frequenzen:
cat /sys/devices/system/cpu/cpufreq/all_time_in_state
Status:
sdir=/sys/devices/system/cpu/cpu ; sfil='/cpufreq/stats/ti*' ; stemp=/sys/devices/virtual/thermal/thermal_zone0/temp; while :; do clear; grep 'model\|Bogo\|proc' /proc/cpuinfo | tail -n 3; echo TemperaturIn°C; cat $stemp; for ((i=0;i<4;++i)); do echo cpu$i; cat $sdir$i$sfil; done; sleep 2; done
Router neu einrichten
Expert->System->
Bevorzugtes Gateway (IP): 10.200.0.3
Fallback DNS (IP): 1.1.1.1 oder 85.214.20.141
Expert->Backbone -> vpn3.freifunk-dresden.de 5002 c3b6153b27893b8674b3869aa3c5ccae3bfb874b6e866bca2bb6c01db0a847ba
Expert->WIFI -> Check
Expert->Splash -> Absschalten
DHCP Lease 30min
Codeschnipsel
Auf eigene Gefahr
Bypass für Offloader
Das Script wird auf dem Bypassrouter (TL 1043) installiert und prüft ob der Offloader per MeshOnLan verfügbar ist und ob auf dem Offloader fastd Tunnel laufen: Ist das der Fall, wird das Interface eth0 und tbb_fastd auf dem Bypassrouter abgeschaltet, damit ausschließlich nur noch der Offloader benutzt wird. Die restlichen Router können, aber müssen nicht, außer per WLAN Meshnetz auch noch per MeshOnLAN vernetzt werden und nutzen automatisch den Offloader. Nach einer Wartezeit prüft der Bypassrouter, ob eine Website wirklich geladen werden kann: Ist dies nicht der Fall, werden die Interface des Bypassrouters wieder eingeschalten.
- als Cronjob möglich
ip='10.200.x.y' #bypassrouter
ol='10.200.j.z' #offloader ip
probe='wikipedia.org'
wget https://$ol/sysinfo-json.cgi -O /tmp/bypass/olsysinfo --no-check-certificate
if [ $(grep $ip /tmp/bypass/olsysinfo | wc -l) -ge 1 ]; #check ip
then if [ $(grep backbone /tmp/bypass/olsysinfo | wc -l) -ge 1 ]; #check backbone
then ifconfig tbb_fastd down; ifconfig eth0 down; #interface des bypassrouters ausschalten, wenn offloader verfügbar
fi;
fi
sleep 15 #gib dem batman noch zeit
wget https://$probe -O /tmp/bypass/probe --no-check-certificate
if [ $(grep $probe /tmp/bypass/probe | wc -l) -ge 1 ]; then echo wikiokay; else ifconfig eth0 up; ifconfig tbb_fastd up; fi #
rm /tmp/bypass/*
Prozess bestimmten Kernen zuweisen
Unter Brücksichtigung von SMT/HT, bei 4 Kernen. Restliches Tasks auf Kerne 1 und 3, Kern 0 "bmxd", Kern 2 "fastd":
rm /tmp/mc; ps -xa>/tmp/mc;while read i ; do task=$(echo $i | cut -b1-5 | grep -o '[0-9]'*); taskset -pc 1,3 $task; done</tmp/mc
taskset -pc 0 $(grep local/bin/bmxd /tmp/mc | cut -b 1-5)
taskset -pc 2 $(grep fastd2.conf /tmp/mc | cut -b 1-5)
OpenSSL Benchmark
OpenSSL Mulitcore Bench für Linux/Openwrt/EdgeOS. Am Besten per vi Dateiname in /tmp/ erstellen, chmod +x Dateiname & Go ./Dateiname
Es werden Benchs für 1,2,4 und MaximaleKerne/2 und Maximale Kerne erstellt, sofern soviele Kerne vorhanden sind
#Cores ermitteln und ins temp schreiben
cores=$(grep -c 'processor' /proc/cpuinfo)
if [ $cores -gt 1 ]; then sort /proc/cpuinfo | uniq -u>/tmp/ci; sort -r /proc/cpuinfo | uniq -d>>/tmp/ci; else cat /proc/cpuinfo>/tmp/ci; fi
benchmarks='md5 sha1 sha256 sha512 des des-ede3 aes-128-cbc aes-192-cbc aes-256-cbc rsa2048 dsa2048'
#Benchmarks Single- und Multicore
rm /tmp/sslspeed*
openssl speed -multi 1 $benchmarks | tee /tmp/sslspeed1
if [ $cores -gt 1 ]; then openssl speed -multi 2 $benchmarks | tee /tmp/sslspeed2; fi
if [ $cores -gt 3 ]; then openssl speed -multi 4 $benchmarks | tee /tmp/sslspeed4; fi
if [ $cores -gt 4 ] && [ $cores -ne 8 ]; then openssl speed -multi $(($cores/2)) $benchmarks | tee /tmp/sslspeed$(($cores/2)); fi
if [ $cores -gt 4 ]; then openssl speed -multi $cores $benchmarks | tee /tmp/sslspeed$cores; fi
#Auswertung
echo Systeminfos BogoMIPS OpenSSL-Version $benchmarks>/tmp/speed
echo -n '1'>>/tmp/speed
echo -n `awk -v FS=": " -v ORS="" '/(model name|cpu model|system type|bogomips|BogoMIPS)/ { print "| " $2 " " } END { print "" }' /tmp/ci`>>/tmp/speed
echo `awk -v ORS="" '$1 ~ /OpenSSL/ {print "| " $2 " |"} $1 ~ /(md5|sha)/ {print " " $5 " |"} $1 ~ /(des|aes)/ {b = b " " $6 " |"} $1 ~ /(rsa|dsa)/ {print b " " $6 " | " $7 " ";b=""} END { print "|" }' /tmp/sslspeed1 | sed 's/\.\(..\)k/\10/g'`>>/tmp/speed
if [ $cores -gt 1 ]; then echo -n '2'>>/tmp/speed; echo -n `awk -v FS=": " -v ORS="" '/(model name|cpu model|system type|bogomips|BogoMIPS)/ { print "| " $2 " " } END { print "" }' /tmp/ci`>>/tmp/speed; echo `awk -v ORS="" '$1 ~ /OpenSSL/ {print "| " $2 " |"} $1 ~ /(md5|sha)/ {print " " $5 " |"} $1 ~ /(des|aes)/ {b = b " " $6 " |"} $1 ~ /(rsa|dsa)/ {print b " " $6 " | " $7 " ";b=""} END { print "|" }' /tmp/sslspeed2 | sed 's/\.\(..\)k/\10/g'`>>/tmp/speed; fi
if [ $cores -gt 3 ]; then echo -n '4'>>/tmp/speed; echo -n `awk -v FS=": " -v ORS="" '/(model name|cpu model|system type|bogomips|BogoMIPS)/ { print "| " $2 " " } END { print "" }' /tmp/ci`>>/tmp/speed; echo `awk -v ORS="" '$1 ~ /OpenSSL/ {print "| " $2 " |"} $1 ~ /(md5|sha)/ {print " " $5 " |"} $1 ~ /(des|aes)/ {b = b " " $6 " |"} $1 ~ /(rsa|dsa)/ {print b " " $6 " | " $7 " ";b=""} END { print "|" }' /tmp/sslspeed4 | sed 's/\.\(..\)k/\10/g'`>>/tmp/speed; fi
if [ $cores -gt 4 ] && [ $cores -ne 8 ]; then echo -n $(($cores/2))>>/tmp/speed; echo -n `awk -v FS=": " -v ORS="" '/(model name|cpu model|system type|bogomips|BogoMIPS)/ { print "| " $2 " " } END { print "" }' /tmp/ci`>>/tmp/speed; echo `awk -v ORS="" '$1 ~ /OpenSSL/ {print "| " $2 " |"} $1 ~ /(md5|sha)/ {print " " $5 " |"} $1 ~ /(des|aes)/ {b = b " " $6 " |"} $1 ~ /(rsa|dsa)/ {print b " " $6 " | " $7 " ";b=""} END { print "|" }' /tmp/sslspeed$(($cores/2)) | sed 's/\.\(..\)k/\10/g'`>>/tmp/speed; fi
if [ $cores -gt 4 ]; then echo -n $cores>>/tmp/speed; echo -n `awk -v FS=": " -v ORS="" '/(model name|cpu model|system type|bogomips|BogoMIPS)/ { print "| " $2 " " } END { print "" }' /tmp/ci`>>/tmp/speed; echo `awk -v ORS="" '$1 ~ /OpenSSL/ {print "| " $2 " |"} $1 ~ /(md5|sha)/ {print " " $5 " |"} $1 ~ /(des|aes)/ {b = b " " $6 " |"} $1 ~ /(rsa|dsa)/ {print b " " $6 " | " $7 " ";b=""} END { print "|" }' /tmp/sslspeed$cores | sed 's/\.\(..\)k/\10/g'`>>/tmp/speed; fi
cat /tmp/speed
/tmp > cat speed
Proxmox-bmxd
Aktuelle Empfehlung bei Gateway mit vielen Knoten ab Proxmox 4.4-22. STP auf der Brücke deaktiviert.
*2Vcores i7-4770:
vmxnet3 self 45 Gbits/sec stabil 99%
virtio self 47 Gbit/sec fehlerhaft bmxd Verbindungen TQ klappen zusammen
realtek self 48 Gbit/sec stabil aber langsam
intelE1000 self 45 GBits/sec fehlerhaft bmxd Verbindungen TQ klappen zusammen
intelE1000 to intelE1000 fastd2 proxmoxbridge 150 Mbit/s
vmxnet3 to vmxnet3 fastd2 proxmoxbridge 250 Mbit/s
virtio to vmxnet3 fastd2 proxmoxbridge 300 Mbit/s
virtio to virto fastd2 proxmoxbrigde 320 Mbit/s
rtl to rtl fastd2 proxmoxbrigde 130Mbit/s
rtl to intelE1000 fastd2 proxmoxbrigde 80-120Mbit/s
rtl to vmxnet3 fastd2 proxmoxbrigde 50-100Mbit/s
virtio to virto fastd2 servdiscount 200 Mbit/s
rtl to virto fastd2 servdiscount 135 Mbit/s