
Målinger af netværkshastighed med Linux i tekstmode...
Jeg har brug for jeres hjælp (igen) til netværksmålinger. Jeg måler en masse ting i hjemmet pt. Er nettet oppe udadtil, hvad er CPU temperatur på serveren, diskforbrug osv osv. Jeg har også latency målinger udadtil via at måle forsinkelsen på en HTTP respons på en ikke-belastet server ude i byen. Det kører via Hobbit/Zymon. Hjemme har jeg bl.a. en ADSL opkobling til internettet, hvor jeg ikke kan komme over 5 MBit/sek downlink. Men et par timer efter det har regnet falder hastigheden med et par Megabit/sec. Skønt. Vi har gammelt kobber - øv!
En af de ting jeg gerne vil er at måle båndbredden fra en server i hjemmet ud af huset til "Internettet". Det er reelt stykket fra hjemmet til min ISP som begrænser og jeg er helt på det rene med at enhver måling afhænger af hvad jeg er ved at down/uploade. Oftest er der ingen belastning.
Har jeg en browser, kan dette gøres f.eks. på den gamle ITST side, eller hos Telenor osv. Alle disse hjemmesider kræver en browser - hvordan kan man på en Linux-maskine lave tilsvarende målinger i tekstmode, så jeg kan køre det via en cron-service?
Jeg forventer at det må findes. Jeg tror løsningerne kan deles i to sider. At jeg har en anden reference-server ude på nettet - eller at jeg ikke har dette. Begge kan have interesse.
/pto
Peter Toft er senior specialist hos Renesas Mobile og har blogget om open source og Linux siden Version2's begyndelse. Blogger også jævnligt om andre sjove teknologi-områder.
Follow @petertoftKommentarer (20)
Du kunne f.eks. bruge curl til at downloade en stor fil og redirecte data til null uden at gemme data.
curl -o /dev/null http://www.testserver.dk/storfil.zip
Bemærk søjlen "Dload", det er bytes/s ikke bit/s.
Find en fil der er hosted hos din udbyder.
iperf er ikke helt ueffent til formålet; se f.eks. http://en.wikipedia.org/wiki/Iperf og http://tinyurl.com/cr4u7zy.
Det kan han selvfølgelig, men med mindre han kan få udbyderen til at køre en iperf host, opnår han ikke den måling, der mest interesserer ham.
Manden skrev selv
Jeg tror løsningerne kan deles i to sider. At jeg har en anden reference-server ude på nettet - eller at jeg ikke har dette. Begge kan have interesse.
Jeg tog blot udgangspunkt deri - ikke hvor referencemaskinen befinder sig ;)
Min første tanke er at wget giver en indikation af hastighed for download, men det er jo desværre ikke med latency m.v.
Iperf har offentlige servere - gad vide om de bliver overbelastede ind imellem. Klip fra Wikipedia om iperf:
ACD.net: iperf.acd.net
SCT: 159.16.237.138 -p 8001 TCP & -p 8002 UDP
Jeg kommer i tanke om, at Bo Holst-Christensen gjorde mig opmærksom på, at det første hop (både for TDC og Telenor/Cybercity kunder) faktisk er unormalt langsomt, det er som regel 20msec. Når jeg fx. laver en traceroute til ntp.lth.se kan jeg se at det første hop tager 20 msec og de resterende 12 hop tager 23 msec.
Det sjove kommer så, hvis man forsøger med tcptraceroute
traceroute -n ntp.lth.se traceroute to ntp.lth.se (130.235.20.67), 30 hops max, 60 byte packets 1 192.168.2.1 0.191 ms 0.190 ms 0.208 ms 2 90.184.68.1 24.489 ms 25.901 ms 26.591 ms 3 90.185.4.232 27.105 ms 28.160 ms 28.326 ms 4 90.185.5.81 38.662 ms 38.717 ms 38.810 ms 5 62.242.107.165 81.801 ms 195.215.109.229 81.820 ms 81.872 ms 6 62.95.54.122 44.932 ms 45.601 ms 46.264 ms 7 213.50.118.42 48.555 ms 37.371 ms 35.855 ms 8 130.242.83.45 35.531 ms 35.662 ms 35.324 ms 9 130.242.85.2 45.132 ms 44.014 ms 45.111 ms 10 193.11.20.10 48.534 ms 52.787 ms 52.122 ms 11 130.235.217.9 47.825 ms 45.551 ms 52.322 ms 12 130.235.217.50 52.505 ms 52.701 ms 52.032 ms 13 * * *
sudo tcptraceroute ntp.lth.se traceroute to ntp.lth.se (130.235.20.67), 30 hops max, 60 byte packets 1 cecar.ddg.lth.se (130.235.20.67) <syn,ack> 0.247 ms 0.275 ms 0.311 ms
Kunne man forestille sig at der var QoS indblandet?
For med ICMP:
sudo traceroute -In ntp.lth.se traceroute to ntp.lth.se (130.235.20.67), 30 hops max, 60 byte packets 1 192.168.2.1 0.202 ms 0.209 ms 0.235 ms 2 90.184.68.1 25.986 ms 26.146 ms 26.765 ms 3 90.185.4.232 27.157 ms 27.903 ms 28.863 ms 4 90.185.5.81 31.100 ms 31.128 ms 31.479 ms 5 195.215.109.229 31.615 ms 32.604 ms 33.277 ms 6 62.95.54.122 44.401 ms 45.408 ms 46.367 ms 7 213.50.118.42 59.871 ms 34.592 ms 35.231 ms 8 130.242.83.45 36.101 ms 36.645 ms 36.396 ms 9 130.242.85.2 45.336 ms 44.381 ms 45.007 ms 10 193.11.20.10 52.571 ms 52.595 ms 51.928 ms 11 130.235.217.9 51.704 ms 50.708 ms 49.682 ms 12 130.235.217.50 50.478 ms 46.595 ms 46.286 ms 13 130.235.20.67 45.325 ms 44.832 ms 44.980 ms
mirrors.telianet.dk, har nogle filer læggende, udfra størrelser og mappe navn, antager jeg at de bl.a. er til for at kunne måle hastighed, så er det vidst bare at vælge en fil, og downlaode den med curl/wget, og beregne bådnbredden:
http://mirrors.telianet.dk/pub/test/
Har jeg en browser, kan dette gøres f.eks. på den gamle ITST side, eller hos Telenor osv. Alle disse hjemmesider kræver en browser...
Det er langt værre: det kræver også flash, de bruger alle speedtest.net som er bygget i flash.
Bortset fra det så skal den server du måler mod stå stort set i den anden ende af din ADSL linje for at din måling ikke skal kunne afvises med "Alle kikkede lige på sidste episode af Borgen".
Selve målinen er ret triviel FTP eller HTTP fra en server hos din udbyder, send en fil af kendt størrelse notér tid og find bps og hent filen igen og gem tiden og udregn bps, nogle FTP programmer leverer bps informationen selv. Det kan gøres med FTP eller HTTP og en tekst only ftp klient. Problemet er at filen skal være forholdsvis stor, det er det som OOKLA gør i speedtest. Du kan se speedtest filerne ved at hente speedtest mini.
https://github.com/sivel/speedtest-cli & https://github.com/Janhouse/tespeed kan teste upload og download
kørte speedtest-cli fint i ubuntu og fik link til speedtest.net billed med resultat
Jeg bruger et simpelt bash script: http://pastebin.com/UKzLNEc9
Det downloader de samme filer som IT-bredbåndsmåleren. Dog med den modifikation at jeg downloader den fire gange parallelt fordi ellers når hastigheden ikke op på noget der er repræsentativt for en 500 Mbps forbindelse.
De har også mindre filer man kan downloade. Du har måske lyst til at finde en af de mindre filer og naturligvis undlade firedobbelt download. Og ellers kan du jo overveje at købe fiber, for den ADSL er da vist kun egnet til at morse :-).
Jeg bearbejder bagefter filen og tegner nogle grafer. De kan ses på forsiden her: http://bolignet.farummidtpunkt.dk/
Når jeg fx. laver en traceroute til ntp.lth.se kan jeg se at det første hop tager 20 msec og de resterende 12 hop tager 23 msec.
Det er fordi det første hop foregår over ADSL, dernæst wrapped i noget access concentrator, muligvis wrapped i ATM/AAL5 osv. Det meste af den routing er ikke IP-routing men handler om at komme op igennem de dele der har med kobberkabler at gøre. Det er tough luck, men du kommer ikke meget under 20ms der.
Brug en FTP server til at måle hastigheden. Lav up/download test. De forskellige udbydere har FTP servere med test filer (Se links andre har angivet).
Kig evt. på SmokePing for at måle latency: http://oss.oetiker.ch/smokeping/
Kig evt. på SmokePing for at måle latency: http://oss.oetiker.ch/smokeping/
Jeps, smokeping er nr 1. Den giver også nogle grafer som du direkte kan bruge til din ISP, fordi alle ISP'er kender værktøjet.
Du kan også bruge eksterne services som pingdom.com - de har en gratis version til et enkelt site.
(Pingdom har ikke IPv6 og har fået et ubrugeligt tyggegumi interface, men det er ikke så dumt til at måle, jeg får ingen procenter :-) )

