Тестування навантаження apachebench, httperf і siege

Яка кількість відвідувачів одночасно витримає ваш сайт і сервер? При якій кількості відвідувачів швидкість роботи сайту почне зменшуватися? Якщо ви задавалися такими питаннями, то цей матеріал буде корисний для вас.

У першій частині статті ми розглянемо консольні утиліти для навантажувального тестування. Це ApacheBench. httperf і siege.

ApacheBench

ApacheBench (більш поширена назва - ab) - це однопоточні консольний додаток, яке використовується для вимірювання продуктивності веб-сервера. Воно входить до складу дистрибутива веб-сервера Apache, так як спочатку було розроблено для тестування самого Apache.

Для того, щоб найбільш простим способом зробити імітацію відвідувачів, слід запустити команду:

Це рівносильно 100 запитам від 10 відвідувачів одночасно. Після закінчення тестування буде виведена результуюча інформація:

Увагу слід звернути на рядки:

  • Time taken for tests: 14.296 seconds - час виконання процедури тестування
  • Complete requests: 100 - кількість запитів, на які отримано відповідь
  • Failed requests: 0 - кількість запитів, на які не отримали відповіді
  • Requests per second: 6.99 [# / sec] (mean) - кількість запитів в секунду
  • Time per request: 1429.629 [ms] (mean) - кількість часу (в мілісекундах), витрачений на запит
  • Time per request: 142.963 [ms] (mean, across all concurrent requests) - кількість часу (в мілісекундах), витрачений на запит, з огляду на все паралельні запити

Ще одне консольний додаток, що використовується також для створення потрібної кількості паралельних запитів народилася в надрах компанії HP - httperf.

Його відмінність від ab в тому, що httperf посилає запити відповідно до своїх налаштувань, незважаючи на те, відповідає сервер на них або вже немає. Таким чином можна визначити не лише якусь максимальне навантаження може витримати сервер, але і як буде себе вести сервер в момент, коли навантаження досягло свого піку.

Як і з першою утилітою в якості тестування запустимо 100 запитів від 10 відвідувачів паралельно:

після закінчення часу тестування виводиться така сумарна статистика:

Розглянемо цей звіт за тими ж даними, що і звіт ab.

  • Total: connections 100 requests 100 replies 100 test-duration 13.255 s - загальна кількість запитів і відповідей, а також час всієї процедури тестування
  • Request rate: 7.5 req / s (132.5 ms / req) - кількість запитів в секунду і кількість часу (в мілісекундах) на запит

На закінчення розглянемо інструмент під назвою siege. На мій погляд, він об'єднує всі сильні сторони попередніх утиліт. Але в той же час відсутність деяких ключів запуску ускладнює швидкий запуск і тестування.

З цікавих параметрів - можливість симулювання реального користувача, який переходить зі сторінки на сторінку і робить запити з нерівномірними інтервалами.

Siege багатоплатформовий і згідно з офіційним сайтом цілком може працювати не тільки під FreeBSD або Linux, але і під Windows.

За замовчуванням, siege використовує 10 одночасних підключень для запитів. Кількість запитів не лімітуються, але можна задавати час протягом якого виконувати тестування

В кінці тестування буде виведений звіт схожого змісту

Схожі статті