Speed'o'Meter

<small>Z PVwiki</small>

Speed'o'Meter, česky třeba rychloměr by měl být CGI script který dle zadání změří rychlost mezi zadanými nody sítě.

Obsah

Troška teorie jak to realizovat

Použité nástroje

Předpoklady pro úspěch

  • na každém nodu který má mít možnost zapojit se do měření, musí být nějaký testfile o standardizované velikosti (100MB?) a jménu, přístupný nejlépe přes HTTP, Apache na většině nodů je
  • stroj kde běží CGI script musí mít na nodech zanesený SSH klíč pro přihlášení bez hesla

Technologické řešení

Ve scriptu, respektive jeho webovém rozhraní, si vybereme dva nody mezi kterými budeme měřit, směr měření (tam, zpátky, tam i zpátky zaráz), případně zda chceme během přenosu testovat změny pingu. Script provede vzdálené spuštění příkazů kterým bude testovat propustnost, pravděpodobně nějak takto:

ssh <user>@<nod1> wget -O /dev/null http://<nod2>/testfile

Následně si z výstupu wgetu pomocí nástroje jako awk vytáhne průměrnou rychlost přenosu, kterou nám po stažení wget vypíše. Pokud nám vypadne něco takového:

--14:00:47--  http://10.133.0.35/test.txt
           => `test.txt'
Connecting to 10.133.0.35:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 10,413,859 (9.9M) [text/plain]

100%[====================================================================>] 10,413,859   209.57K/s    ETA 00:00

14:01:36 (211.36 KB/s) - `test.txt' saved [10413859/10413859]

Pak bude vypsání průměrné rychlosti celkem snadné:

| grep saved | awk -F "(" '{print $2}' | awk -F " " '{print $1}'

Výsledkem bude osamocené číslo, konkrétně 211.36, což je průměrná rychlost přenosu v kB/s.

Následuje už jen výpis dat opět do webového rozhraní, aby z toho měl neco i uživatel.

Co se nabízí jako další možnosti?

Souběžné testování odezvy vzáleného nodu

V tomto případě bychom museli wget pustit na pozadí, jeho výstup přesměrovat do nějakého dočasného souboru a zatím co bude stahovat data, tak pomocí nástroje ping testovat odezvu stroje ze kterého data táhneme. Opět přijde na řadu grep a awk, pomocí kterých vytáhneme odezvy (min, max, avg), případně i ztrátovost spoje.

Testování trasy delši než 1 hop na segmenty

Abychom mohli otestovat delší trasu postupně, ne tedy stylem začátek-konec, ale mezi všemy nody na které cestou narazíme zvlášt, musíme si prvně trasu rozebrat pomoci traceroute abychom zjistili odkud kam vlastně budeme data tahat. Následné získání výsledků už moc odlišné od předchozího přikladu nebude, pouze budeme muset zajistit získaní více dat současně a jejich správnou interpretaci.

Osobní nástroje