Jak zjistit rychlost lokální sítě?

Webových stránek a aplikací měřící rychlost připojení na internet je mnoho. Co když ale chceme znát rychlost v rámci naší domácí (lokální, LAN) sítě? Použijeme aplikaci iperf.

Co budeme potřebovat?

Rychlost je potřeba vždy měřit mezi dvěmi body, tj. budeme potřebovat dvě zařízení u nás doma, které jsou připojeny do sítě a mohou to být:

  1. počítač – víceméně jakýkoliv PC s operačním systémem Windows, Linux nebo OSX, který má dostatečně rychlý disk a síťovku
  2. mobilní telefon nebo table – pokud si vystačíme s proměřením bezdrátové WiFi můžeme šáhnout i po telefonu či tabletu
  3. NAS server – zde už obecně nelze říct jestli půjde NASka na test využít či nikoliv. Prvotním předpokladem je, abychom dokázali na NASku aplikaci iperf nainstalovat – v případě NAs od Synology bychom toho měli být schopni pomocí dpkg.

Jak měřit?

Obecně můžeme ke každému bodu měřit rychlost stahování (download) a rychlost posílání (upload).

V případě rychlosti stahování musí být bod v režimu klient a protějšek v režimu server. Při rychlosti nahrávání je to přesně naopak.

Režim klient

iperf -c <IPadresaServeru> -i <intervalVypisuVysledku> -t <dobaMereni> -f <jednotka>

Použijeme několik parametrů:

  • c – za tento parametr napíšeme IP adresu nebo název cíle (protějšku vůči kterému měříme)
  • i (volitelně) – určuje po kolika sekundách budeme dostávat na obrazovku aktuální výsledek testu
  • t (volitelně) – určuje požadovanou dobu testu v sekundách
  • f (volitelně) – určuje jednotku v které bude vypsán výsledek. Malá písmenka jsou bitech, velká v Bajtech. Tj. např. m = megabit a M = Megabajt.
  • p (volitelně) – port na kterém služba naslouchá na protějšku (standardně 5001)
Iperf - klient
Klientská strana – Stolní počítač s SSD diskem a 1Gbit síťovkou

Pokud nemáme k dispozici dva počítače pak můžeme otestovat alespoň rychlost WiFi pomocí mobilu (aplikace network tools), který však umí běžet jen v režimu klient.

iPerf mobil
Klientská strana – mobil

Režim server

iperf -s

Můžeme použít úplně stejné parametry jako na klientské straně.

iperf - server
Serverová strana – NASka s plotnovými disky a 1Gbit síťovkou

Jak číst výsledek?

Z výše uvedeného příkladu jsme dostali výsledek měření mezi stolním počítačem s 1Gbit síťovou kartou a SSD diskem (teoretická max. rychlost je tak něco přes 100MB/s) vůči NAS serveru, který disponuje také 1Gbit síťovkou, ale zřejmě nestíhá zápis tak rychle = rychlost cca 59MB/s.  Proč je zápis pomalejší upřímně zatím netuším, jelikož při testu rychlosti disku přímo na NASce dostávám dostatečnou hodnotu 132MB/s.

Rychlost zápisu disku na NASce
Rychlost zápisu disku na NASce

U testu z mobilu jsme pak zjistili rychlost kolem 70MB/s, což vůbec není špatné – jedná se o standardní modem Cisco od UPC.

Uděláme-li si však obrácené měření, tj. zapisovat budeme na stolní počítač, tak se dostaneme na maximum 1Gbit = rychlost cca 110MB/s.

iperf opačně
Přenos NASkou (čtení) a stolním PC (zápis) na 1Gbit síti

Přidání opkg – repozitáře s konzolovými aplikacemi do NAS Synology

NAS servery od Synology běží interně na operačním systému Linux a tak se můžete dostat do stavu, kdy byste na své NASce, chtěli mít i své oblíbené konzolové aplikace.

Samotné Synology připravilo ke správě aplikací jejich vlastní „Centrum balíčků“, který obsahuje sice výborné aplikace, ale nejsou zda obsaženy žádné klasické konzolovky.

NAS Synology - centrum balíčků
NAS Synology – centrum balíčků

Naštěstí máme možnost přidání správce balíčků opkg, který je odnoží ipkg, tedy systému určeného pro embedded zařízení (mini-počítače).

Postup bohužel není úplně triviální, ale nepředpokládám, že by konzolové aplikace používali lidé nezběhlí v IT, takže to nakonec nebude tak složité – vycházím z tohoto návodu: https://github.com/Entware-ng/Entware-ng/wiki/Install-on-Synology-NAS

Postup instalace

  1. Přihlásíme se na svou NAScu (pomocí ssh <názevUživatele>@<IPadresa/názevNas>) a přepneme na uživatele root
    sudo su
  2. Vytvoříme adresář na pevném disku
    mkdir -p /volume1/@entware-ng/opt
  3. Vytvoříme symbolický link do kořeného adresáře
    ln -sf /volume1/@entware-ng/opt /opt
  4. Spustíme instalační skript v závislosti na architektuře CPU v naší NASce (pro většinu domácích NAS to bude ARM). Pokud si nejsme jistý zjistíme to jednoduše pomocí příkazu:
    uname --machine

    Architektura

    • pro ARM v5
      wget -O - https://pkg.entware.net/binaries/armv5/installer/entware_install.sh | /bin/sh
    • pro ARM v7
      wget -O - https://pkg.entware.net/binaries/armv7/installer/entware_install.sh | /bin/sh
    • pro x86-32bit
      wget -O - https://pkg.entware.net/binaries/x86-32/installer/entware_install.sh | /bin/sh
    • pro x86-64bit
      wget -O - https://pkg.entware.net/binaries/x86-64/installer/entware_install.sh | /bin/sh
  5. Přidáme následující kód do /etc/profile souboru
    source /opt/etc/profile
    

    takže bychom tam měli mít něco takového

    ...
    if [ -f /etc.defaults/.bashrc_profile ]; then
           	source /etc.defaults/.bashrc_profile
    fi
    
    source /opt/etc/profile
    
    PATH=$PATH:/var/packages/Java8/target/j2sdk-image/bin # Synology Java runtime enviroment
    PATH=$PATH:/var/packages/Java8/target/j2sdk-image/jre/bin # Synology Java runtime enviroment
    ...
  6. Restartujeme NAS

Kontrola zda byla instalace úspěšná

Pokud jsme vše udělali dobře a nevyskytla se během instalace nějaká chyba měli bychom být nyní schopni spustit balíčkovač opkg,

Opkg v shellu
Balíčkovací systém opkg v konzoli

Instalace z repozitáře

Samotná instalace aplikace je velice podobná jakémukoliv jinému balíčkovacímu systému v konzoli., tj. např. pokud chceme nainstalovat souborový manažer Midnight Commander pak stačí zadat:

opkg install mc

a balíčkovač už se postará o případné závislosti.

Midnight commander
Souborový manažer Midnight commander

Aktualizace balíčků

Jelikož samotná repozitory není jen statický balík pevně daných aplikací, ale občas nějaké další přibydou, a nebo jsou již aplikace povýšeny na novější verzi, je vhodné občas udělat aktualizace a to následující dvojici příkazů

# zaktualizuje seznam aplikací v repozitory a jejich verzí
opkg update

# aplikuje aktualizace na již nainstalované aplikace
opkg upgrade

Seznam všech dostupných balíčků

Kromě možnosti vypsat si seznam lokálně přímo v konzoli příkazem opkg list, se můžeme podívat na seznam balíčků i na webu v závislosti na použité architektuře procesoru

Instalací opkg tak dostává naše NASca další rozměr a můžeme začít používat spousty zajímavých konzolových aplikací ze světa Linuxu.

Pomalá Samba (SMB) na Macu

Je tomu už pár měsíců co jsem doma vyměnil kompletně infrastrukturu na 1Gbit LAN a pořádně jsem ji mohl využít až s nákupem NASky (Synology DS216play), která má dostatečně silný CPU aby „gigabit“ zvládla a zároveň disponuje síťovou kartou stejné rychlosti.

Čas plynul a já NASku začal používat jako primární zdroj fotek i při editaci, tj. na počítači mám skutečně jen katalog Lightroomu s náhledy a fotky jako takové jsou fyzicky na NAS serveru. Na tohle použití jsem nepociťoval problémy, až jednoho dne jsem si říkal, že si změřím rychlost kopírování a ouha, „problém“ byl na světě.

Ukázalo se, že z OSX je rychlost kopírování někde mezi 20-40MB/s, což je od teoreticky proklamovaných 100MB/s poměrně daleko. O to větší překvapení bylo, když jsem zjistil, že z Windows to skutečně touto rychlostí frčí a tak nastálo bádání čím by to mohlo být.

Rychlost kopírování SMB v OSX před
Rychlost stahování z NASky před úpravou

Pokus první – nastavování samby na NASce

Od všemožných rad na přepnutí SMB2 na SMB3 v Synology konzole a povypínání různých věcí, které však mému problému vůbec nepomáhali jsem se dostal k doporučení zavrhnout SMB a použít starý AFP, což skutečně pomohlo, ale zase z počítače s Windows byla NASka nepoužitelný (pokud jsem SMB vypnul) a nebo jsem se musel ručně v OSX připojit na AFP namísto SMB (nedovedu si představit, že bych to takhle delší dobu dělal).

Nakonec jsem nastavení Synology nechal takto (Menu Ovládací panel -> Souborové služby):

Nastavení SMB v NAS Synology
Nastavení SMB v NAS Synology

Pokus druhý – nastavování v OSX (Macu)

Hledal jsem tedy dále až jsem našel nanápadný návod na změnu SMB klienta na straně OSX a to zadáním následujících příkazů v terminálu:

sudo -s
echo "[default]" > /etc/nsmb.conf
echo signing_required=no >> /etc/nsmb.conf

Poté už jen restartovat a hurá – 100MB/s při kopírování je v OSX i přes SMB protokol.

Rychlost kopírování SMB v OSX po
Rychlost stahování z NASky po úpravě

Nutno, ale poznamenat, že u tohoto řešení je bezpečností varování:

Sounds like its the new default of signing being on for the SMB Client. This was done to prevent our SMB Client from being used to attack SMB Servers using the “badlock” exploit.

Jak nastavit XDebug pro PhpStorm

Zejména v případě používání framework se při psaná nejen webů hodí mít možnost si do kódu přidat „breakpointy“ (místa na kterých se aplikace po spuštění zastaví) a z těchto míst se poté dívat kam kód dál směřuje a jaké hodnoty mají jednotlivé proměnné.

U webových aplikací je to všechno trošku složitější, jelikož potřebujeme nastavit pro podporu debugování taky samotný webové server a tak přináším návod pro kombinaci PHP jakožto modulu Apache serveru a vývojového prostředí PHPStorm.

Budu předpokládat že máte již vyřešeno následující:

  • nainstalován webový server Apache včetně PHP, které bude obsahovat rozšíření pro XDebug
  • nainstalováno IDE PHPStorm
  • používáte prohlížeč Safari – debugování bude ale samozřejmě fungovat i v ostatních prohlížečích, jen se musíte postarat o jiný plugin pro zapnutí Debug módu

Povolení a nastavení modulu XDebug pro PHP

Prvním krokem je zapnutí podpory XDebug v PHP. Já používám balík NAMP, který obsahuje Apache, MySQL a PHP a XDebug je nutné zapnout ručně pomocí úpravy konfiguračního souboru PHP, tedy php.ini. Je ale možné, že budete moci XDebug zapnout mnohem elegantněji, nicméně postup, přes konfigurační soubor je nejuniverzálnější.

Nezapomeňte si ověřit, že editujete správný php.ini a v něm proveďte následující změny:

[xdebug]
zend_extension="/Applications/MAMP/bin/php/php5.6.7/lib/php/extensions/no-debug-non-zts-20131226/xdebug.so"
xdebug.remote_enable=true
xdebug.remote_port=9000
xdebug.idekey="XDEBUG_ECLIPSE"

Poté už stačí jen webový server restartovat a nahrání XDebug modulu si můžete ověřit například pomocí:

<?php
phpInfo();
?>

Ve výpisu byste hned na začátku měli najít nějaký podobný výpis, který obsahuje zapnutý XDebug.
Screenshot 2015-06-13 23.36.56

Tím jsme dokončili serverovou část a můžeme se podívat na nastavení samotného IDE.

Nastavení debugování v PhpStorm

Otevřeme si menu PHPStormu a v něm Run -> Edit Configuration a pomocí ikonky + přidáme novou položku „PHP Remote Debug“, kterou si nějak pojmenujeme, např. „XDebug“. Dále budeme muset nastavit server a tzv. IDE key – ten musíme mít pak stejný jak v PHPStormu tak v samotném prohlížeči a na webovém serveru. Jednotlivé nastavení máte na obrázcích níže.

Screenshot 2015-06-13 23.38.35 Screenshot 2015-06-13 23.38.23

Před samotným debugováním nezapoměňte ještě zapnout listener, který bude poslouchat PHP Debug spojení – najdete v menu Run -> Start Listening for PHP Debug Connection.

Plugin do Safari – XDebug Helper

Poslední částí je pak zapnutí debugování v prohlížeči. Já používám Safari a tak se mi nejvíce hodí plugin XDebug Helper, který má velice jednoduché menu. Pomocí volby Debug pak debugovací mód nastartujete a naopak pomocí Disable vypnete.

Screenshot 2015-06-13 23.40.11

 

A to je vše 🙂

Poslech z Google Music na OSX pohodlně

Když necelé dva roky zpět spustil i v naši vlasti Google službu pro neomezený poslech hudby přes internet s měsíční zkouškou zdarma, řekl jsem si že do toho půjdu a hudbu takhle poslouchám dodnes.

Jedna z mých úchylek na počítači je, že mám raději aplikace než zřejmě modernější způsob „vše přes browser“. Díky tomu se mi několikrát při poslechu hudby stalo, že jsem si zavřel prohlížeč jelikož jsem dosurfoval, a ejhle ona se vypla i hudba 🙂 Nějakou dobu jsem to řešil poslechem přes tablet nebo telefon, kde má Google poměrně hezké aplikace, ale na počítači jste prostě odkázáni jen na prohlížeč.

Velice jsem proto kvitoval, když jsem objevil Radiant Player – užasný přehrávač Google Music hudby pro OSX, který je (zatím) zdarma.

Radian Player - moje knihovna
Radian Player – moje knihovna

Aplikace navíc není jen úplně triviálním prohlížečem, který by jen zobrazil totéž co na klasickém browseru, ale kromě nabídky základní funkcí, které jsou víceméně kopií toho co můžete vidět na webu nám aplikace přináší i pár nemalých benefitů, které Vám níže trochu představím.

Ikonka v horní liště – miniplayer

Nepředstavuje jen pouhou ikonku, ale i možnost ovládát přehrávání či „likovat“ oblíbenou hudbu.

Radian Player - miniplayer
Radian Player – miniplayer

Ikonka v dolní liště

Opět se nejedná o pouhou ikonku, ale můžeme dělat totéž co výše a pár věcí navíc prostřednicvím klasické menu nabídky.

Radian Player - panel aplikací
Radian Player – panel aplikací

Ovládání pomocí „Media“ kláves

Tohle je snad pro mě největší plus, jelikož mohu takto přímo z klávesnice pozastavovat přehrávání či přeskakovat písničky pomocí tzn. „Media“ kláves – viz. obrázek a příslušná sekce.

OSX - mediální klávesy
OSX – mediální klávesy

Propojení s Last.fm

Radiant Player - nastavení Last.fm
Radiant Player – nastavení Last.fm

Kdož má účet už v poněkud historické službě Last.fm, která může sloužit jako jakýsi archív a statistika co jste poslouchali, pak je napojení na tuto službu velice jednoduché.

Radiant Player - prozkoumat
Radiant Player – prozkoumat
Radiant Player - rádio
Radiant Player – rádio

Jestliže máte u Googlu hudbu předplacenu a nebo máte případně na Google Music nahránu i hudbu svou, pak rozhodně po tomto přehrávači šáhněte. Myslím, že budete nadšeni a nebude vás to stát navíc ani korunu -> Radiant Player

Autor se navíc při nedávném velkém redesignu ukázal jako schopný velice pružně reagovat na změny ze strany Googlu a do pár dnů aplikaci předělal tak aby opět fungovalo.