baltun
Администратор
- Сообщения
- 12.282
- Реакции
- 3.082
- Баллы
- 1.833
Пока ваш веб-сервер работает стабильно и стабильно отдаёт посетителям запрошенный контент — всё в порядке. Но задавали ли вы себе вопрос: а что будет, если нагрузка на сервер возрастёт? При помощи утилиты ab — Apache HTTP server benchmarking tool, инструмента, который позволит вам определить максимально возможное количество одновременных запросов, которые сможет обработать ваш веб-сервер. Утилита ab поставляется в комплекте с Apache, так что если он у вас установлен — у вас есть уже всё необходимое.
Установка утилиты.
Теперь можно проводить тестирование веб-сервера. Для начала давайте организуем нагрузку нашему серверу в одну тысячу последовательных запросов. Для указания числа запросов используется опция n.
Видим результат:
Расшифруем некоторые поля:
Для выполнения теста с Keep-Alive-соединениями просто добавьте опцию -k.
Так можно запрашивать определенный php-сценарий, указанное количество раз, а нашем случает будет 300 раз.
Утилита подходит как для простого, так и продвинутого тестирования:
Установка утилиты.
Код:
yum install httpd-tools
Теперь можно проводить тестирование веб-сервера. Для начала давайте организуем нагрузку нашему серверу в одну тысячу последовательных запросов. Для указания числа запросов используется опция n.
Код:
ab -n 1000 http://aserver.ashep:80/test.html
Видим результат:
Код:
Benchmarking aserver.ashep (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Completed 500 requests
Completed 600 requests
Completed 700 requests
Completed 800 requests
Completed 900 requests
Completed 1000 requests
Finished 1000 requests
Server Software: Apache/2.2.14
Server Hostname: aserver.ashep
Server Port: 80
Document Path: /test.html
Document Length: 177 bytes
Concurrency Level: 1
Time taken for tests: 1.500 seconds
Complete requests: 1000
Failed requests: 0
Write errors: 0
Total transferred: 453000 bytes
HTML transferred: 177000 bytes
Requests per second: 666.58 [#/sec] (mean)
Time per request: 1.500 [ms] (mean)
Time per request: 1.500 [ms] (mean, across all concurrent requests)
Transfer rate: 294.88 [Kbytes/sec] received
Расшифруем некоторые поля:
- Concurrency Level: количество одновременно-отправляемых запросов — 1;
- Time taken for tests: тысяча запросов к серверу заняла 1,5 секунды;
- Complete requests: успешно получен ответ на всю тысячу запросов;
- Failed requests: неудавшихся запросов — ноль;
- Write errors: ошибок записи — ноль;
- Total transferred: общий объём переданных данных: 453000 байт;
- HTML transferred: из них «полезного» HTML — 177000 байт;
- Requests per second: среднее количество запросов в секунду составило 666.58
- Time per request: среднее время на один запрос 1,5 миллисекунды
- Transfer rate: скорость обмена данными с сервером составила 294.88 килобайта в секунду.
Код:
ab -n 1000 -c 1000 http://aserver.ashep:80/test.html
Для выполнения теста с Keep-Alive-соединениями просто добавьте опцию -k.
Код:
ab -k -n 1000 -c 1000 http://aserver.ashep:80/test.html
Так можно запрашивать определенный php-сценарий, указанное количество раз, а нашем случает будет 300 раз.
Код:
ab -n 1000 -c 300 http://aserver.ashep:80/test.php
Утилита подходит как для простого, так и продвинутого тестирования:
Код:
ab -c 50 -n 10000 -f TLS1.2 -H "Accept-Encoding: gzip,deflate" https://somesite.com/
Последнее редактирование: