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 content-type заголовок для POSTing Заголовок типу Content, який використовується для даних POST, наприклад -T "application/x-www-form-urlencoded". (co-p) -v багатослівність Скільки інформації про усунення несправностей потрібно друкувати Встановіть рівень деталізації для відображення інформації — значення 4 або більше покаже інформацію з заголовка, значення 3 або більше — код відповіді (404, 200 тощо), а значення 2 або більше — попередження та іншу інформацію. -V показує номер версії та виходить. -C атрибут Додати cookie, наприклад. -C "c1=1234,c2=2,c3=3" (повторюється) -C cookie-name=value Додати файл cookie до рядка запиту: Типова форма — пара параметрів name=value. Цей параметр можна повторити, поділивши на кому. Порада: Ви можете використати принцип реалізації сесії, щоб передати параметр JSESSIONID для виконання функції підтримки сесії, наприклад -C "c1=1234, c2=2, c3=3, JSESSIONID=FF056CD16DA9D71CB131C1D56F0319F8". -w Друкувати результати у HTML-таблицях // Результати виводу у форматі HTML-таблиці. За замовчуванням це таблиця з двома стовпцями шириною на білому фоні. -Я використовую HEAD замість GET -x атрибути Рядок для вставлення як атрибутів таблиці -y атрибути Рядок вставляти як атрибути tr -z приписує рядку для вставки як атрибути td або th -H атрибут Додати довільний заголовковий рядок, наприклад. 'Accept-Encoding: gzip' Вставлено після всіх звичайних заголовків. (повторюється) -Атрибут Додати базову 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,Вхід за гіперпосиланням видно.
Бенчмаркінг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 [#/сек] (середнє) Час на запит: 449.164 [мс] (середнє) Час на запит: 44,916 [мс] (середнє по всіх одночасних запитах) Швидкість передачі: 7,59 [Кбайт/сек] прийому
Час підключення (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
Відсоток отриманих запитів протягом певного часу (мс) 50% 397 66% 415 75% 439 80% 461 90% 535 95% 623 98% 1563 99% 1784 100% 1830 (найдовший запит) Аналіз параметрів:
Шлях до документа: Сторінка тестування Довжина документа: Розмір сторінки Рівень паралелізму: кількість паралельних маршрутів, що тестуються одночасно Час, витрачений на тести: тривалість усього тесту Виконані запити: Кількість виконаних запитів Невдалі запити: Кількість невдалих запитів Помилки запису: 0 Загальна кількість переданих: Обсяг мережі, що передається протягом процесу HTML перенесений: Обсяг HTML-контенту, що передається протягом процесу Запити за секунду: одна з найважливіших метрик, еквівалентна транзакціям за секунду в LR, а середнє в дужках вказує на середнє значення Час на запит: Два найважливіші метрики, еквівалентні середньому часу відповіді на транзакцію в LR, у дужках вказують, що це середнє Час на запит: середній фактичний час виконання кожного запиту на підключення Швидкість передачі: середній трафік за секунду в мережі, що допомагає виключити проблему надмірного мережевого трафіку, що спричиняє тривалий час відгуку
|