Если вы хотите контролировать сервер Apache, мы должны знать некоторые аспекты:
- Сколько запросов вы можете поддержать?
- Скорость, с которой вы отвечаете на запросы
- Какое время ожидания
- Какие приложения или услуги могут быть улучшены или оптимизированы
ApacheBench
ApacheBench - это компьютерное программное обеспечение, которое запускается из командной строки для измерения производительности, особенно веб-серверов и службы http. Это программное обеспечение было разработано для тестирования HTTP-сервера Apache, но, будучи инструментом для тестирования http-сервисов, его можно использовать для тестирования любого веб-сервера, такого как Nginx, Lighttpd .
Инструмент ApacheBench находится в репозиториях Linux и является серверной библиотекой Apache и поэтому является бесплатным программным обеспечением с открытым исходным кодом и использует лицензию Apache.
Этот тип теста очень легко выполнить быстро, используя команду Apache Bench ab.
Этот тест покажет нам быстро, если есть непосредственная проблема с установкой Apache и, следовательно, плохо реагирует.
Это также помогает нам в следующем вопросе: Как далеко я могу использовать или заставить сервер и его веб-ресурсы использовать Apache, PHP и MySQL? (с одновременными подключениями и страницей запроса загрузки), а также то, что мы должны оптимизировать в конфигурации Apache и PHP, чтобы получить лучшую производительность и устранить проблемы с ответами на запросы посетителей.
1. Установка ApacheBench на серверах Linux
Ubuntu / Debian
sudo apt-get install -y apache2 sudo apt-get установить apache2-utils
Redhat / Centos
ням установить httpd-tools
Мы будем проводить тесты с разными доменами и ip. Мы начнем с открытия окна терминала и проведем следующие тесты:
Локальный сервер или localhost также ip 127.0.0.1
ab 127.0.0.1/локальный
2. Запросы
Давайте посмотрим на запрос с параметрами. Мы отправляем 100 запросов группами по 30 человек за один раз на google.com и сохраняем данные, полученные в CSV-файле, код выглядит следующим образом:
ab -g data.csv -n 100 -c 30 google.com/
Анализируем результат
Серверное программное обеспечение: GFE / 2.0 // Операционная система Веб-сервер Google на базе Linux Имя сервера: google.com Порт сервера: 80 Путь к документу: / Длина документа: 262 байта Уровень параллелизма: 30 Время, затрачиваемое на тесты: 1, 370 секунды Выполнение запросов: 100 Сбой запросов: 0 Не-2xx ответов: 100 Всего передано: 53100 байт Передано HTML: 26200 байт Число запросов в секунду: 73, 01 [# / сек] (среднее значение) // среднее время на запрос Время на запрос: 410, 899 [мс] (среднее значение) / / среднее на запрос Время на запрос: 13 697 [мс] (среднее значение для всех одновременных запросов) // среднее значение для общего значения Скорость передачи: 37, 86 [Кбайт / с] получено Время соединения (мс) // Время соединения, обработки и ожидания, мин среднее [+/- sd] медиана макс. Соединение: 42 81 53, 0 73 446 Обработка: 48 190 265, 7 88 1286 Ожидание: 46 114 148, 2 86 1246 Итого: 114 270 274, 7 150 1369 Процент запросов, обработанных в течение определенного времени (мс) 50 % 150 66% 203 75% 222 80% 243 90% 844 95% 953 98% 1088 99% 1369 100% 1369 (самый длинный запрос)
Мы видим, что он отвечал на 73 запроса в секунду со средним временем на запрос 410 899 миллисекунд и скоростью передачи данных 37, 86 Кбайт / с. Мы также видим, как изменяются время соединения, процесс и время ожидания.
Файл данных CSV будет иметь следующую структуру.
CSV структура
(время начала) Вт 24 марта 11:53:03 2015 - (секунды) 1427208783 - (ctime) 46 - (dtime) 68 - (ttime) 114 - (ожидание) 66 (время начала) вт 24 марта 11:53:03 2015 - (секунд) 1427208783 - (ctime) 46 - (dtime) 74 - (ttime) 120 - (ожидание) 72 (время начала) вт 24 марта 11:53:03 2015 - (секунды) 1427208783 - (ctime) 64 - (dtime) 56 - (ttime) 120 - (подождите) 56
Затем из терминала с текстовым редактором мы создадим текстовый файл для оценки нескольких URL-адресов одного и того же домена. Инструмент ApacheBench поддерживает до 20 тысяч URL-адресов, как показано ниже.
Файл будет иметь следующую структуру:
http://example.com/index.html/ http://example.com/news.html/ http://subdomain.example.com/Мы проверяем один запрос за раз:
ab -g data.csv -n 1000 urls.txtВ этом случае ApacheBench собирает адреса urls.txt и отправляет запросы на сервер. Доменное имя URL-адресов должно быть одинаковым для всех URL-адресов.
Случай, когда 10 пользователей одновременно совершают 10 посещений веб-сайта
Это 100 страниц, которые загружаются 10 различными одновременными и повторяющимися пользователями, каждый пользователь загружает 10 страниц или отображается последовательно в каждом запросе.
Мы тестируем:
ab -l -r -n 100 -c -k 10 http://www.example.com/clients/Это означает максимальную загрузку веб-сайта, который получает около 100 000 посещений в месяц, которые сервер должен поддерживать и отвечать на них.
Случай, когда 50 пользователей одновременно посещают один и тот же веб-сайт 20 раз
Речь идет о сервере, отвечающем 1000 страниц или 50 пользователей одновременно на 20 запросов, каждый пользователь выполняет 20 запросов к страницам в последовательности:
ab -l -r -n 1000 -c -k50 http://www.example.com/chat/Это можно использовать для тестирования блога или системы, в которой пользователи или посетители часто комментируют, отправляя множество запросов, таких как чат или система комментирования, например Facebook.
Этот тип теста может быть эквивалентен посещаемости веб-сайта или очень активного блога.
Быстрый тест PHP и MySQL
Мы создаем любую базу данных mysql или, если у нас есть такая, чтобы протестировать ее, мы создаем скрипт php с именем absql.php
AB Test Php и MySQLМы отправляем 10000 запросов в скрипт и, следовательно, в MySQL.
ab -n 1000 -c 5 http://190.165.210.108/absql.php$config[ads_text5] not found
Анализируйте результаты каждого теста с помощью ApacheBench . Наиболее важные данные - это те, которые предоставляют нам запросы и информацию об ответах с сервера:
Анализировать результаты ApacheBench
1. Сколько запросов в секунду сервер может посещать, просматривая? Другие показатели не очень полезны, так как они не представляют чего-то реального в этом контексте.
2. Есть ли ошибка на веб-сайте или в конфигурации Apache? Когда серверу требуется время для ответа или сбоя, мы должны проанализировать, есть ли проблемы с памятью или высокое потребление ресурсов.
3. На каком уровне совпадения начнется замедление отклика или крах сервера Apache и сколько времени будет ждать? Если это происходит на низком уровне параллелизма, что-то не так, мы должны знать, что это такое и что нужно для работы, возможно, больше ресурсов сервера.
$config[ads_text5] not found3. Факторы, которые следует учитывать для улучшения производительности в Apache
Производительность Apache
1. Модуль Apache mod_cache на странице кэша запросов / результатов. Это приведет к увеличению производительности в 5-10 раз по сравнению с другими методами.
2. php_memcache управляет кэшем данных для PHP-скриптов и запросов. Это может привести к увеличению производительности веб-страниц на 50-100%.
3. Плагины кеша для Joomla, WordPress, PrestaShop и некоторых Frameworks или CMS.
4. Модуль Apache Mod_expires позволяет использовать кэш посетителя и хранить страницы в течение определенного времени, вместо повторного запроса к этим страницам и необходимости перезагрузки, он работает, если сеть не меняет свое содержимое каждую минуту.
$config[ads_text6] not foundЕще один аспект, который сильно влияет на производительность Apache, - это PHP и MySQL, повышающие производительность MySQL за счет оптимизации конфигурации файла my.ini для xampp, wampp или lampp и оптимизации запросов или запросов к сети, которая использует php и генерирует контент из MySQL. пытаясь оптимизировать использование медленной регистрации запросов MySQL, чтобы увидеть, в чем проблема, и повысить производительность.
Если вы хотите больше информации об использовании AppacheBench .
- 0
СТАТЬИ