Monitorujte výkon serveru Apache

Když chcete sledovat a server Apache„Musíme znát některé aspekty:

  • Kolik požadavků snese
  • Rychlost, s jakou reaguje na požadavky
  • Jaká je čekací doba
  • Jaké aplikace nebo služby lze vylepšit nebo optimalizovat
K měření výkonu serveru použijeme nástroj s názvem Apache Benchmark nebo ApacheBench.

ApacheBenchApacheBench je to počítačový software, který běží na příkazovém řádku k měření výkonu, zejména webových serverů a služby http. Tento software byl vyvinut pro testování serveru Apache HTTP, ale jako nástroj pro testování služeb http je možné jej použít k testování jakéhokoli webového serveru, jako je Nginx, Lighttpd.

Nástroj ApacheBench je v repozitářích Linuxu a jako knihovna na serveru Apache, a proto je zdarma, open source software a používá licenci Apache.

Tento druh testu je velmi snadné provést rychle pomocí příkazu Apache Bench ab.

Tento test nám rychle ukáže, zda je okamžitý problém s instalací Apache, a proto reaguje špatně.

Pomáhá nám to také s následující otázkou Jak daleko mohu použít nebo vynutit server a jeho webové zdroje pomocí Apache, PHP a MySQL? (se současným připojením a stránkou požadavku na načtení), plus to, co potřebujeme optimalizovat v konfiguraci Apache a PHP, abychom získali lepší výkon a odstranit problémy s reakcí na požadavky návštěvníků.

1. Instalace ApacheBench na servery Linux


Ubuntu / Debian
 sudo apt-get install -y apache2 sudo apt-get install apache2-utils

Redhat / Centos

 yum nainstalovat httpd-tools

Budeme provádět testy s různými doménami a IP. Začneme otevřením okna terminálu a provedeme následující testy:

Místní server nebo localhost také IP 127.0.0.1

 ab 127.0.0.1/
localhost

2. Dotazy


Podívejme se na dotaz s parametry. Odesíláme 100 požadavků ve skupinách po 30 na google.com a získaná data uložíme do souboru csv, kód je následující:
 ab -g data.csv -n 100 -c 30 google.com/

Analyzujeme výsledek

 Serverový software: GFE / 2.0 // Provozní web Webový server Google založený na Linuxu Server Název hostitele: google.com Port serveru: 80 Cesta dokumentu: / Délka dokumentu: 262 bajtů Úroveň souběžnosti: 30 Čas na testy: 1370 sekund Úplné požadavky: 100 Neúspěšné požadavky: 0 Non-2xx odpovědi: 100 Celkem přeneseno: 53100 bajtů Přeneseno HTML: 26200 bajtů Požadavky za sekundu: 73,01 [# / s] (průměr) // průměr na požadavek Čas na požadavek: 410,899 [ms] (průměr) / / průměr na požadavek Čas na požadavek: 13,697 [ms] (průměr, přes všechny souběžné požadavky) // průměr na celkový Přenosová rychlost: 37,86 [kB / s] přijato Časy připojení (ms) // Časy připojení, procesu a čekání min. průměr [+/- sd] medián max. Připojení: 42 81 53,0 73 446 Zpracování: 48 190 265,7 88 1286 Čekání: 46 114 148,2 86 1246 Celkem: 114 270 274,7 150 1369 Procento požadavků vyřízených v určitém čase (ms) 50 % 150 66% 203 75% 222 80% 243 90% 844 95% 953 98% 1088 99% 1369 100% 1369 (nejdelší požadavek)

Vidíme, že reagovalo na 73 požadavků za sekundu s průměrnou dobou na požadavek 410 899 milisekund a přenosovou rychlostí 37,86 kB / s, vidíme také, jak se liší připojení, proces a čekací doba.

Datový soubor CSV bude mít následující strukturu.

CSV struktura

 (počáteční čas) Út 24. března 11:53:03 2015 - (sekundy) 1427208783 - (ctime) 46 - (dtime) 68 - (ttime) 114 - (počkat) 66 (počáteční čas) Út 24. března 11:53:03 2015 - (sekundy) 1427208783 - (ctime) 46 - (dtime) 74 - (ttime) 120 - (wait) 72 (starttime) Út 24. března 11:53:03 2015 - (sekundy) 1427208783 - (ctime) 64 - (dtime) 56 - (čas) 120 - (čekání) 56

Dále z terminálu pomocí textového editoru vytvoříme textový soubor pro vyhodnocení více adres URL stejné domény. Nástroj ApacheBench podporuje až 20 tisíc adres URL, jako jsou následující.

Soubor bude mít následující strukturu:

 http://example.com/index.html/ http://example.com/novinky.html/ http://subdomain.example.com/
Testujeme jeden požadavek najednou:
 ab -g data.csv -n 1000 urls.txt
V tomto případě, ApacheBench sbírat adresy urls.txt a odesílat požadavky na server. Název domény adres URL musí být stejný pro všechny adresy URL.

Případ, kdy 10 současných uživatelů každý provede 10 návštěv webu
Je to asi 100 stránek, které načte 10 různých současných a opakujících se uživatelů, každý uživatel vytvoří 10 stránek, které se načtou nebo jsou zobrazeny postupně v každém požadavku.

Testujeme:

 ab -l -r -n 100 -c -k 10 http://www.eexample.com/clients/
To představuje maximální zatížení webových stránek, které měsíčně navštíví přibližně 100 000 návštěv a které musí server podporovat a reagovat na ně.

Případ, kdy 50 současných uživatelů navštíví stejnou webovou stránku 20krátJde o to, aby server reagoval na 1 000 stránek, tj. 50 uživatelů na 20 požadavků současně, každý uživatel zadal 20 dotazů na stránky za sebou:

 ab -l -r -n 1000 -c -k50 http://www.eexample.com/chat/
To lze použít k testování blogu nebo systému, kde uživatelé nebo návštěvníci hodně komentují zasláním mnoha požadavků, jako je chat nebo systém komentářů, jako je facebook.

Tento typ testu může být ekvivalentní provozu velmi aktivního webu nebo blogu.

Rychlý test PHP a MySQLVytvoříme libovolnou databázi mysql, nebo pokud ji máme k testování, použijeme ji, pak vytvoříme php skript s názvem absql.php

 AB Test Php a MySQL 
Odesíláme 10 000 požadavků do skriptu, a tedy do MySQL.
 ab -n 1000 -c 5 http://190.165.210.108/absql.php

Analyzujte výsledky každého testu pomocí ApacheBench. Nejdůležitější data jsou ta, která nám poskytují informace o požadavcích a odpovědích ze serveru:

Analyzujte výsledky ApacheBench1. Kolik požadavků za sekundu může server zobrazit zobrazením? Ostatní ukazatele nejsou příliš užitečné, protože v tomto kontextu nereprezentují něco skutečného.

2. Vyskytují se na webové stránce nebo konfiguraci Apache nějaké chyby? Když server potřebuje čas na odpověď nebo se zhroutí, musíme analyzovat, zda problémy s pamětí nebo vysoká spotřeba zdrojů.

3. Na jaké úrovni souběžnosti začne server Apache zpomalovat nebo havarovat a jak dlouho bude čekat? Pokud se to děje na nízké úrovni souběžnosti, něco není v pořádku, měli bychom vědět, co to je a co je potřeba, aby to fungovalo, možná více zdrojů serveru.

3. Faktory, které je třeba zvážit pro zlepšení výkonu v Apache


Výkon Apache1. Mod_cache modul z Apache na stránku mezipaměti požadavků / výsledků. Výsledkem bude 5-10x zlepšení výkonu oproti všem ostatním kombinovaným metodám.

2. php_memcache spravuje mezipaměť dat pro skripty a dotazy PHP. To může způsobit 50% až 100% zvýšení výkonu webových stránek.

3. Cache pluginy pro Joomla, WordPress, PrestaShop a některé rámce nebo CMS.

4. Mod_expires modul Apache používá mezipaměť návštěvníka a uchovává stránky po určitou dobu, místo aby na tyto stránky znovu požádal a musel znovu načíst, funguje to, pokud web nemění svůj obsah každou minutu.

Dalším aspektem, který výrazně ovlivňuje výkon Apache, je PHP a MySQL, zlepšení výkonu MySQL optimalizací konfigurace souboru my.ini xampp, wampp nebo lampp a optimalizovat dotazy nebo požadavky na web, který používá php a generuje obsah z MySQL, snaží se optimalizovat použití pomalého protokolu dotazů MySQL, aby zjistil, jaký je problém, a zlepšil výkon.

Pokud chcete více informací o tom, jak používat AppacheBench.

Líbil se vám tento návod a pomohl mu?Autora můžete odměnit stisknutím tohoto tlačítka, čímž mu dáte kladný bod

Vám pomůže rozvoji místa, sdílet stránku s přáteli

wave wave wave wave wave