AB е съкращение от ApacheBench.
Командата ab създава множество паралелни нишки за достъп, за да симулира множество посетители, които едновременно достъпват URL адрес. Тестовите му цели са базирани на URL, така че може да се използва за тестване както на натоварване на apache, така и за други натоварвания на уеб сървъра като nginx, lighthttp, tomcat, IIS и др.
Командата ab има ниски изисквания към компютъра, който изпраща натоварването, и не заема много процесор или памет. Въпреки това, това ще причини огромно натоварване на целевия сървър, а принципът му е подобен на CC атаките. Трябва също да обръщаш внимание на тестването и използването му, иначе ще имаш твърде голямо натоварване наведнъж. Това може да доведе до изчерпване на ресурсите на целевия сървър, а в тежки случаи дори до срив.
1. Въведение в Apache Bench
ApacheBench е инструмент за уеб стрес тестване, който идва с Apache сървъри, съкратено ab. AB е също така инструмент за команден ред с ниски нативни изисквания за иницииране на полезни товари, и много паралелни нишки за достъп могат да се създават според командата AB, симулирайки множество посетители, които достъпват определен URL адрес едновременно, така че да може да се използва за тестване на натоварването на целевия сървър. Обикновено инструментът AB е малък и прост, бърз за учене и може да предостави основните показатели за представяне, които ви трябват, но няма графични резултати и не може да се наблюдава.
2. Инсталация на Apache Bench
Първо трябва да инсталирате Apache сървъра и да изтеглите адреса:Входът към хиперлинк е видим.,
Моят компютър е 64-битова система с Windows 10, затова изтеглих "httpd-2.4.33-win64-VC15.zip", линк:Входът към хиперлинк е видим.
Препоръчва се да се изтегли най-новата версия, тъй като по-старите версии на ab не поддържат параметъра -r.
3. Използване на Apache Bench
Разберете параметрите
Описание на параметъра: Формат: ab [options] [http://]hostname[:p ort]/path
-n заявки Брой заявки за изпълнение //Общият брой заявки, инициирани в този тест -c конкурентност Брой множество заявки за подаване // Брой заявки (или конкурентност), генерирани едновременно -t времеви лимит Секунди до максимум. Изчакайте отговори //Максималният брой секунди, през които тестът се извършва по подразбиране. -r Не излизайте при прием при грешки при прием на гнездото. Хвърлете изключение, за да продължите тестовата задача -p postfile Файл, съдържащ данни към POST // Файл, съдържащ данни, които трябва да бъдат POST, във файлов формат като "p1=1&p2=2". Методът на използване е -p 111.txt
-T съдържание тип заглавие за POSTing Заглавието Content-type, използвано за POST данните, като -T "application/x-www-form-urlencoded". (co-p) -v Многословност Колко информация за отстраняване на проблеми да се отпечата Задайте нивото на детайлност за показване на информация – стойност 4 или по-висока ще показва информация за заглавието, стойност 3 или по-висока ще показва код за отговор (404, 200 и др.), а стойност 2 или повече ще показва предупреждения и друга информация. -V показва номера на версията и излиза. -C атрибут Добави бисквитка, напр. -C "c1=1234,c2=2,c3=3" (повторяемо) -C cookie-name=value Добавете бисквитка към реда request: Типичната форма е параметърна двойка име=стойност. Този параметър може да се повтори, разделен на запетая. Съвет: Можете да използвате принципа на имплементация на сесията, за да предадете параметъра JSESSIONID и да постигнете функцията за поддържане на сесията, например -C "c1=1234, c2=2, c3=3, JSESSIONID=FF056CD16DA9D71CB131C1D56F0319F8". -w Разпечатайте резултатите в HTML таблици // Изходните резултати са във формат HTML таблица. По подразбиране това е таблица с ширина две колони на бял фон. -Използвам HEAD вместо GET -x атрибути Низ за вмъкване като атрибути на таблицата -y атрибути Низ да се вмъкне като tr атрибути -z атрибутира String за вмъкване като td или th атрибути -H атрибут Добави произволен ред в заглавието, напр. 'Accept-Encoding: gzip' Вмъкнат след всички нормални заглавни редове. (повтаряемо) -A атрибут Добави основна WWW автентикация, атрибутите са потребителско име и парола, разделени с двоеточие. -P атрибут Добави основна прокси автентикация, атрибутите са потребителско име и парола, разделени с двоеточие. -X прокси:порт Проксисървър и номер на порт за използване -V Отпечатай, номер на версията и изход -k Използвайте функцията HTTP KeepAlive -d Не показвайте перцентили, обслужвани на масата. -S Не показвайте оценители и предупреждения за увереност. -g име на файл Извеждане на събрани данни във формат gnuplot. -e име на файл Изходен CSV файл с обслужени проценти -h Покажи информация за използване (това съобщение) Има много параметри, обикновено можем да използваме -c и -n параметри. Например:
Разархивирайте "httpd-2.4.33-win64-VC15.zip", отидете в \Apache24\bin и го стартирайте с командния ред на cmd, както е показано на фигурата по-долу:
SSL не е компилиран в; няма https поддръжка: SSL не се компилира в; Няма https поддръжка, което означава, че уебсайтът не поддържа https.
Резултати от тестовете:
C:\Users\itsvse_pc\Downloads\httpd-2.4.33-win64-VC15\Apache24\bin>ab -c 10 -n 1000 https://www.itsvse.com SSL не е компилиран в; Няма поддръжка на HTTPS
C:\Users\itsvse_pc\Downloads\httpd-2.4.33-win64-VC15\Apache24\bin>ab -c 10 -n 1000 http://www.itsvse.com/ Това е ApacheBench, версия 2.3 <$Revision: 1826891 $> Авторски права 1996 Адам Туис, Zeus Technology Ltd,Входът към хиперлинк е видим. Лицензиран на Apache Software Foundation,Входът към хиперлинк е видим.
Бенчмаркингwww.itsvse.com(бъди търпелив) Завършени 100 заявки Завършени са 200 заявки Завършени са 300 заявки Завършени 400 заявки Завършени са 500 заявки Завършени 600 заявки Завършени са 700 заявки Завършени 800 заявки Завършени 900 заявки Завършени 1000 заявки Завършени 1000 заявки
Сървърен софтуер: Име на сървър: www.itsvse.com Сървърен порт: 80
Път към документа: / Дължина на документа: 178 байта
Ниво на съвместност: 10 Време за тестове: 44.916 секунди Пълни заявки: 1000 Неуспешни заявки: 0 Отговори извън 2xx: 1000 Общо прехвърлени: 349000 байта Прехвърлен HTML: 178000 байта Заявки в секунда: 22.26 [#/sec] (средно) Време на заявка: 449.164 [ms] (средно) Време на заявка: 44.916 [ms] (средно за всички едновременни заявки) Скорост на предаване: 7.59 [Kbytes/sec] получени
Време на свързване (ms) Минимална средна стойност[+/-sd] Медианна максимална
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
Процент от заявките, изпратени в определен срок (ms) 50% 397 66% 415 75% 439 80% 461 90% 535 95% 623 98% 1563 99% 1784 100% 1830 (най-дългата заявка) Анализ на параметрите:
Път към документа: Тестова страница Дължина на документа: Размерът на страницата Ниво на паралелност: Броят на паралелните тестове, тествани едновременно Време, необходимо за изпити: Продължителността на целия тест Пълни заявки: Броят на изпълнените заявки Неуспешни заявки: Броят на неуспешните заявки Грешки при писане: 0 Общо прехвърлено: Количеството мрежа, прехвърлена през целия процес HTML прехвърлен: Количеството HTML съдържание, прехвърлено през целия процес Заявки в секунда: Една от най-важните метрики, еквивалентна на транзакции в секунда в LR и средна стойност в скоби, показва, че това е средно Време на заявка: Двете най-важни метрики, еквивалентни на средното време за отговор на транзакция в LR, средно в скоби, показват, че това е средно Време на заявка: Средната стойност на действителното време за изпълнение на всяка заявка за връзка Скорост на трансфер: Среден трафик в секунда в мрежата, което може да помогне да се изключи проблема с прекомерен мрежов трафик, причиняващ дълги времена за отговор
|