Pokud jste webmaster, můžete mít často obavy o výkon svých webových aplikací. Můžete se ptát na otázky jako:„Jak provedu zátěžové testování své aplikace? nebo „bude moje aplikace schopna zpracovat velké množství uživatelů?“ V těchto případech může být Apache Bench velkým pomocníkem. Apache Bench je bezplatný nástroj s otevřeným zdrojovým kódem pro měření výkonu webového serveru pomocí jednoduchého a snadno použitelného rozhraní příkazového řádku; může vám pomoci pochopit, jak funguje vaše aktuální instalace Apache.
V tomto tutoriálu vám ukážeme, jak nainstalovat a používat Apache Bench na Linuxu.
Předpoklady
- Nové Ubuntu 18.04 VPS na cloudové platformě Atlantic.Net.
- Na vašem serveru je nakonfigurováno heslo uživatele root.
Krok 1 – Vytvoření cloudového serveru Atlantic.Net
Nejprve se přihlaste ke svému cloudovému serveru Atlantic.Net. Vytvořte nový server a jako operační systém vyberte Ubuntu 18.04 s alespoň 1 GB RAM. Připojte se ke svému cloudovému serveru přes SSH a přihlaste se pomocí přihlašovacích údajů zvýrazněných v horní části stránky.
Jakmile se přihlásíte ke svému serveru Ubuntu 18.04, spusťte následující příkaz a aktualizujte svůj základní systém nejnovějšími dostupnými balíčky.
apt-get update -y
Krok 2 – Instalace Apache Bench
Apache Bench je součástí balíčku webového serveru Apache, takže pokud je ve vašem systému nainstalován webový server Apache, nemusíte Apache Bench instalovat.
Pro operační systém Ubuntu/Debian nainstalujte nástroj Apache Bench pomocí následujícího příkazu:
apt-get install apache2-utils -y
Pro operační systém RHEL/CentOS nainstalujte nástroj Apache Bench pomocí následujícího příkazu:
yum install httpd-tools -y
Všechny možnosti dostupné nástrojem Apache Bench můžete zobrazit pomocí následujícího příkazu:
ab
Měli byste vidět následující obrazovku:
Stručné vysvětlení nejčastěji používaných možností je uvedeno níže:
- -n: Zadejte počet žádostí o připojení odeslaných na webový server.
- -c: Zadejte počet souběžných požadavků na připojení odeslaných na webový server.
- -t: Zadejte počet sekund, po které má příkaz ab pokračovat v odesílání požadavků.
Poznámka: Někdy se může zobrazit chyba „vypršel časový limit připojení“. Důvodem je váš požadavek na připojení zablokovaný firewallem nebo webový server Apache nebyl schopen zpracovat další požadavky.
Krok 3 – Provedení zátěžového testu
V tomto okamžiku je nainstalován nástroj Apache Bench. Nyní můžete provést zátěžový test proti vašemu webovému serveru lokálně nebo pomocí názvu domény.
Proveďme zátěžový test na vašem webovém serveru Apache odesláním 800 požadavků na 300 souběžných připojení.
ab -n 800 -c 300 http://your-domain-name/
To bude fungovat pro 800 požadavků se souběžností 300, jak je uvedeno níže:
This is ApacheBench, Version 2.3 <$Revision: 1807734 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking localhost (be patient) Completed 100 requests Completed 200 requests Completed 300 requests Completed 400 requests Completed 500 requests Completed 600 requests Completed 700 requests Completed 800 requests Finished 800 requests Server Software: Apache/2.4.29 Server Hostname: localhost Server Port: 80 Document Path: / Document Length: 10918 bytes Concurrency Level: 300 Time taken for tests: 0.459 seconds Complete requests: 800 Failed requests: 0 Total transferred: 8953600 bytes HTML transferred: 8734400 bytes Requests per second: 1743.53 [#/sec] (mean) Time per request: 172.064 [ms] (mean) Time per request: 0.574 [ms] (mean, across all concurrent requests) Transfer rate: 19056.29 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 6 7.8 0 20 Processing: 8 92 124.3 44 437 Waiting: 4 92 124.4 43 437 Total: 22 98 128.9 44 453 Percentage of the requests served within a certain time (ms) 50% 44 66% 50 75% 53 80% 56 90% 435 95% 445 98% 450 99% 452 100% 453 (longest request)
Ve výše uvedeném výstupu můžete vidět, že Apache zpracoval 1743,53 požadavků za sekundu a obsloužení všech požadavků trvalo celkem 0,459 sekund.
Proveďme další zátěžový test na vašem webovém serveru Nginx a porovnejte jej s výsledkem Apache odesláním 800 požadavků na 300 souběžných připojení.
ab -n 800 -c 300 http://your-domain-name/
Měli byste vidět následující výstup:
This is ApacheBench, Version 2.3 <$Revision: 1807734 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking localhost (be patient) Completed 100 requests Completed 200 requests Completed 300 requests Completed 400 requests Completed 500 requests Completed 600 requests Completed 700 requests Completed 800 requests Finished 800 requests Server Software: nginx/1.14.0 Server Hostname: localhost Server Port: 80 Document Path: / Document Length: 10918 bytes Concurrency Level: 300 Time taken for tests: 0.184 seconds Complete requests: 800 Failed requests: 0 Total transferred: 8930400 bytes HTML transferred: 8734400 bytes Requests per second: 4354.95 [#/sec] (mean) Time per request: 68.887 [ms] (mean) Time per request: 0.230 [ms] (mean, across all concurrent requests) Transfer rate: 47474.91 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 1 12 7.5 9 32 Processing: 5 33 12.8 30 56 Waiting: 4 26 12.9 22 49 Total: 15 46 13.6 46 70 Percentage of the requests served within a certain time (ms) 50% 46 66% 56 75% 58 80% 60 90% 64 95% 66 98% 70 99% 70 100% 70 (longest request)
Ve výše uvedeném výstupu můžete vidět, že Apache zpracoval 4354,95 požadavků za sekundu a obsloužení všech požadavků trvalo celkem 0,184 sekund.
Můžete vidět, že Nginx zvládne více požadavků než Apache. Po porovnání výsledku obou serverů získáte představu, který z nich zvolit pro svou webovou aplikaci.
Závěr
Ve výše uvedené příručce jsme se naučili, jak testovat výkon webového serveru pomocí Apache Bench. Nyní můžete prozkoumat nástroj Apache Bench a spustit jej s různými možnostmi měření výkonu vašeho webového serveru; zkuste to ještě dnes na VPS Hosting od Atlantic.Net!