Яка кількість відвідувачів одночасно витримає ваш сайт і сервер? При якій кількості відвідувачів швидкість роботи сайту почне зменшуватися? Якщо ви задавалися такими питаннями, то цей матеріал буде корисний для вас.
У першій частині статті ми розглянемо консольні утиліти для навантажувального тестування. Це 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 одночасних підключень для запитів. Кількість запитів не лімітуються, але можна задавати час протягом якого виконувати тестування
В кінці тестування буде виведений звіт схожого змісту