Hastighetstest
© 2010 Siptune
Nopeustesti.fiIperf on pieni, komentoikkunassa käytettävä ilmaisohjelma, jolla yhteysnopeuden ja laatutekijöiden mittaus onnistuu uskomattoman monipuolisesti. Ominaisuuksissa löytyy kaistanleveyden, viiveen vaihtelun ja hukattujen pakettien lisäksi esim. mahdollisuus mitata erikseen UDP-protokollaa, kaksisuuntaista tai multicast-liikennettä. Voit myös valita siirrettäväksi pakattua tai pakkaamatonta dataa. Iperf on saatavilla Windows-, Linux-, FreeBSD-, Irix, Mac- OpenBSD- ja Solaris-käyttöjärjestelmiin ja toimii myös IPv6-verkoissa.
Iperf vaatii kaksi tietokonetta. Sama ohjelma käynnistetään toisessa koneessa palvelin- ja toisessa client-moodiin. Jos käytettävissäsi on kaksi tietokonetta, on vaikkapa WLAN-verkon VoIP- ja multimedia-kelpoisuuden kattava tutkiminen mahdollista. Raaka tiedonsiirtonopeus on mitattavissa iperf-ohjelmalla myös omia tiedostoja käyttäen.
Omaan järjestelmään sopivan Iperfin version voi hakea Sourceforgen Iperf-sivuilta. (Windowsissa toimiva .exe-tiedosto löytyy paketin lib-hakemistosta.)
Samasta osoitteesta löytyy myös edistyneemmässä käytössä tarvittavaa ohjeistusta. Windows-ympäristössä ohjelma ei vaadi asentamista.
Linux-käyttöjärjestelmään tarvittava iperf package löytyy useimmista repositoryistä. Erityisen näppärä iperf on OpenWrt-pohjaisissa reitittimissä. Voit mitata langattoman yhteyden nopeuden kätevästi käynnistämällä iperf-palvelimen OpenWrt-reitittimessä ja käyttämällä clientia PC:ssä.
Tällä sivulla opettelemme ohjelman peruskäytön ja kokeilemme myös puheen, musiikin ja videon siirrossa oleellisen UDP-siirron testausta.
Testausta varten iperf käynnistetään palvelimena käytettävällä tietokoneella komennolla:
C:\>iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 8.00 KByte (default)
------------------------------------------------------------
Palomuurin on luonnollisesti läpäistävä iperf:n käyttämä TCP-portti 5001.
Iperf clientin käynnistys tapahtuu yksinkertaisimmillaan näin: (Osoitteena voi käyttää myös palvelinkoneen nimeä, jos palvelin on samassa verkossa tai nimipalvelin sen löytää.)
C:\>iperf -c 192.168.50.31
------------------------------------------------------------
Client connecting to 192.168.50.31, TCP port 5001
TCP window size: 8.00 KByte (default)
------------------------------------------------------------
[1916] local 192.168.0.31 port 1826 connected with 192.168.50.31 port 5001
[ ID] Interval Transfer Bandwidth
[1916] 0.0-10.0 sec 22.0 MBytes 18.4 Mbits/sec
Kuten yltä näkyy, saadaan tulokseksi siirretty datamäärä ja saavutettu nopeus. Samat tiedot ilmestyvät myös palvelimen konsolille.
UDP:n testausta varten iperf-palvelimen käynnistyskomentoon lisätään parametri -u:
C:\>iperf -su
------------------------------------------------------------
Server listening on UDP port 5001
Receiving 1470 byte datagrams
UDP buffer size: 8.00 KByte (default)
------------------------------------------------------------
Client-koneen käynnistyksessä vaaditaan sama -u-parametri, mutta komento vaatii myös kaistanleveyden ilmoittamisen parametrillä -b, koska UDP:llä iperf:n oletusnopeus on vain 1 Mb/s:
C:\iperf -c 192.168.50.31 -u -b 54m
------------------------------------------------------------
Client connecting to 192.168.50.31, UDP port 5001
Sending 1470 byte datagrams
UDP buffer size: 8.00 KByte (default)
------------------------------------------------------------
WARNING: delay too large, reducing from 217.8 to 1.0 seconds.
[1916] local 192.168.0.31 port 1887 connected with 192.168.50.31 port 5001
[ ID] Interval Transfer Bandwidth
[1916] 0.0-12.0 sec 17.2 KBytes 11.8 Kbits/sec
[1916] Server Report:
[1916] 0.0-11.9 sec 17.2 KBytes 11.9 Kbits/sec 1.559 ms 0/ 12 (0%)
[1916] Sent 12 datagrams
Tulokseksi saadaan datamäärän ja siirtonopeuden lisäksi jitter (viiveen vaihtelu) ja hukkuneiden pakettien määrä. Samat tiedot tulostuvat tässäkin myös palvelimen ruudulle, ja hieman selkeämmässä muodossa. Huom: Viiveen vaihtelun ja hukkuneiden pakettien vaikutuksesta on kerrottu lisää näiden sivujen ping-komennon oppaassa.
Iperfin voi laittaa tietysti pyörimään myös internet-palvelimelle. Lisäksi edistyneempi käyttäjä voi muokata testisiirtoa hyvin monipuolisesti iperf:n pitkän parametrilistan avulla:
Client ja palvelin:
-f, --format [kmKM] raportin yksikkö: Kbits, Mbits, KBytes, MBytes
-i, --interval # raporttien toistoväli
-l, --len #[KM] siirrettävän paketin pituus (oletus 8 KB)
-m, --print_mss näyttää TCP segmentin maksimikoon (MTU - TCP/IP header)
-o, --output [filename] vikaraportin tulostus [filename]-tiedostoon
-p, --port # palvelimen kuunteleman portin määritys
-u, --udp UDP-siirron valinta
-w, --window #[KM] TCP ikkunan koko
-B, --bind [host] multicast-osoite
-C, --compatibility sanomat vanhemman version muodossa
-M, --mss # TCP:n maksimi segmenttikoko
-N, --nodelay ilman viivettä, Nagle:n algoritmi pois päältä
-V, --IPv6Version IPv6:n käyttö
Palvelimella käytettäviä:
-s, --server palvelinmoodi
-D, --daemon aja palvelinta daemon-moodissa
-R, --remove palvelun poisto (windows 32)
Clientilla käytettäviä
-b, --bandwidth #[KM] UDP:llä, käytettävä kaistanleveys bit/s (K=kilo, M=mega)
(oletus 1 Mbit/sec)
-c, --client [host] client-moodin käynnistys [host]=palvelimen osoite
-d, --dualtest kaksisuuntainen testaus yhtäaikaisesti
-n, --num #[KM] lähetettävien tavujen määrä (K tai M) (vaihtoehto -t:lle)
-r, --tradeoff kaksisuuntainen testaus erikseen
-t, --time # lähetyksen kestoaika (oletus 10 s)
-F, --fileinput [name] lähetettävä data tiedostosta [name]
-I, --stdin lähetettävä data stdin:stä
-L, --listenport # kaksisuuntaisen datan vastaanottoportti
-P, --parallel # rinnakkaisten client threadien määrä
-T, --ttl # time-to-live, multicastille (default 1)
Sekalaisia:
-h, --help parametrien selitykset
-v, --version version tulostus
Tarkempia ohjeita yllä olevien parametrien käyttöön sekä yhteyksien testaus- ja parannusohjeita iperfin avulla löytyy käyttöohjeesta.