AB je zkratka pro ApacheBench.
Příkaz ab vytváří více souběžných přístupových vláken pro simulaci více návštěvníků přistupujících k URL adrese současně. Jeho testovací cíle jsou založené na URL, takže jej lze použít k testování jak zatížení apache, tak dalších stresů webových serverů, jako jsou nginx, lighthttp, tomcat, IIS atd.
Příkaz ab má nízké požadavky na počítač, který zátěž vydává, a nezabírá moc CPU ani paměti. Nicméně to způsobí obrovskou zátěž na cílovém serveru a jeho princip je podobný útokům CC. Musíte také věnovat pozornost testování a používání svépomoci, jinak budete mít najednou příliš velkou zátěž. Může to způsobit, že cílovému serveru dojdou zdroje, a v závažných případech dokonce způsobí pád.
1. Úvod do Apache Bench
ApacheBench je nástroj pro testování zátěže na webu, který je součástí serverů Apache, zkráceně ab. AB je také nástroj příkazové řádky s nízkými nativními požadavky na iniciaci payloadů a mnoho souběžných přístupových vláken lze vytvořit podle příkazu AB, simulující více návštěvníků přistupujících k určité URL adrese současně, takže lze jej použít k testování zatížení cílového serveru. Obecně je nástroj AB malý a jednoduchý, rychle se učí a dokáže poskytnout základní ukazatele výkonu, které potřebujete, ale nemá žádné grafické výsledky a nelze jej monitorovat.
2. Instalace Apache Bench
Nejprve musíte nainstalovat Apache server a stáhnout adresu:Přihlášení k hypertextovému odkazu je viditelné.,
Můj počítač je Windows 10 64bitový systém, takže jsem si stáhl "httpd-2.4.33-win64-VC15.zip", odkaz:Přihlášení k hypertextovému odkazu je viditelné.
Doporučuje se stáhnout nejnovější verzi, protože starší verze ab nepodporují parametr -r.
3. Použití Apache Bench
Pochopte parametry
Popis parametru: Formát: ab [options] [http://]hostname[:p ort]/path
-n požadavků Počet požadavků k provedení //Celkový počet požadavků iniciovaných v tomto testu -c souběžnost Počet více požadavků k vykonání // Počet požadavků (nebo souběžnosti) generovaných najednou -t časový limit Sekundy do maxima. Čekání na odpovědi //Maximální počet sekund, po které se test provádí ve výchozím nastavení. -r Neodcházejte při chybách přijímání socketu. Vyhoďte výjimku pro pokračování testovacího úkolu -p postsoubor obsahující data pro POST // Soubor obsahující data, která musí být POST, ve formátu souboru jako "p1=1&p2=2". Metoda použití je -p 111.txt
-T typ obsahu Hlavička typu obsahu pro POSTování Hlavička typu Content, která se používá pro data POST, například -T "application/x-www-form-urlencoded". (ko-p) -v textologie Kolik informací o řešení problémů vytisknout Nastavte úroveň detailu pro zobrazení informací – hodnota 4 nebo více zobrazí informace v hlavičce, hodnota 3 nebo více zobrazí kód odpovědi (404, 200 atd.) a hodnota 2 nebo více zobrazí varování a další informace. -V zobrazuje číslo verze a končí. -C atribut Přidat cookie, např. -C "c1=1234,c2=2,c3=3" (opakovatelné) -C cookie-name=value Přidat cookie do řádku požadavku: . Typická forma je pár parametrů jméno=hodnota. Tento parametr lze opakovat, dělit čárkou. Tip: Můžete použít princip implementace relace k předání parametru JSESSIONID k dosažení funkce udržování relace, například -C "c1=1234, c2=2, c3=3, JSESSIONID=FF056CD16DA9D71CB131C1D56F0319F8". -w Vytisknout výsledky v HTML tabulkách // Výstup výsledků ve formátu HTML tabulky. Ve výchozím nastavení je to tabulka se dvěma sloupci širokými na bílém pozadí. -Používám HEAD místo GET -x atributy Řetězec pro vložení jako atributy tabulky -y atributy Řetězec pro vložení jako atributy tr -z atributuje řetězec k vložení jako td nebo th atributy -H atribut Přidat libovolný řádek záhlaví, např. 'Accept-Encoding: gzip' Vloženo po všech běžných hlavičkových řádcích. (opakovatelné) -Atribut Přidat základní WWW autentizaci, atributy jsou dvojtečka oddělená uživatelským jménem a heslem. -P atribut Přidat základní ověřování proxy, atributy jsou dvojtečka oddělené uživatelské jméno a heslo. -X proxy:port Proxyserver a číslo portu pro použití -V Tisk číslo verze a výstup -k Použít funkci HTTP KeepAlive -d Neukazujte percentily podávaného stolu. -S Neukazujte odhady důvěry a varování. -g název souboru Výstup shromážděných dat do souboru ve formátu gnuplot. -e název souboru Výstup CSV soubor s procenty podávaných -h Zobrazit informace o využití (tato zpráva) Existuje mnoho parametrů, obecně můžeme použít parametry -c a -n. Například:
Rozbalte "httpd-2.4.33-win64-VC15.zip", přejděte na \Apache24\bin a začněte příkazovou řádkou cmd, jak je znázorněno na obrázku níže:
SSL nebylo zkompilováno v; Nepodporuje https: SSL není zkompilováno v; Neexistuje podpora https, což znamená, že web https nepodporuje.
Výsledky testů:
C:\Users\itsvse_pc\Downloads\httpd-2.4.33-win64-VC15\Apache24\bin>ab -c 10 -n 1000 https://www.itsvse.com SSL nebylo zkompilováno v; Žádná podpora https
C:\Users\itsvse_pc\Downloads\httpd-2.4.33-win64-VC15\Apache24\bin>ab -c 10 -n 1000 http://www.itsvse.com/ Toto je ApacheBench, verze 2.3 <$Revision: 1826891 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd,Přihlášení k hypertextovému odkazu je viditelné. Licencováno The Apache Software Foundation,Přihlášení k hypertextovému odkazu je viditelné.
Benchmarkingwww.itsvse.com(buďte trpěliví) Dokončeno 100 žádostí Dokončeno 200 žádostí Dokončeno 300 žádostí Dokončeno 400 žádostí Dokončeno 500 žádostí Dokončeno 600 žádostí Dokončeno 700 žádostí Dokončeno 800 žádostí Dokončeno 900 žádostí Dokončeno 1000 požadavků Dokončeno 1000 žádostí
Serverový software: Název serveru: www.itsvse.com Server Port: 80
Cesta k dokumentu: / Délka dokumentu: 178 bajtů
Úroveň souběžnosti: 10 Čas na testy: 44,916 sekundy Kompletní požadavky: 1000 Neúspěšné žádosti: 0 Odpovědi mimo 2xx: 1000 Celkový přenos: 349000 bajtů HTML přeneseno: 178000 bajtů Požadavky za sekundu: 22,26 [#/sekunda] (průměr) Čas na žádost: 449.164 [ms] (průměr) Čas na požadavek: 44,916 [ms] (průměr, napříč všemi současnými požadavky) Přenosová rychlost: 7,59 [Kbajt/s] přijatých
Časy připojení (ms) Minimální průměr[+/-SD] medián maxima
Connect: 32 45 60.1 37 1439
Processing: 35 401 185.6 356 1795
Waiting: 34 245 199.6 228 1791
Total: 69 446 195.4 397 1830
Procento obsloužených požadavků v určité době (ms) 50% 397 66% 415 75% 439 80% 461 90% 535 95% 623 98% 1563 99% 1784 100% 1830 (nejdelší požadavek) Analýza parametrů:
Cesta k dokumentu: Testovací stránka Délka dokumentu: Velikost stránky Úroveň souběžnosti: Počet testovaných souběžností současně Doba trvající na testy: Délka celého testu Kompletní požadavky: Počet dokončených požadavků Neúspěšné požadavky: Počet neúspěšných žádostí Chyby zápisu: 0 Celkový počet přenesení: Množství přenesené sítě během procesu HTML přeneseno: Množství HTML obsahu přeneseného během procesu Požadavky za sekundu: Jedna z nejdůležitějších metrik, ekvivalentní transakcím za sekundu v LR, a průměr v závorkách ukazuje, že jde o průměr Čas na požadavek: Dvě nejdůležitější metriky, ekvivalentní průměrné době reakce v LR, v závorkách naznačují, že jde o průměr Čas na požadavek: Průměr skutečné doby běhu pro každý požadavek na spojení Přenosová rychlost: Průměrný provoz za sekundu v síti, což může pomoci vyloučit problém nadměrného síťového provozu způsobujícího dlouhé doby odezvy
|