Мониторинг производительности или производительности сервера Apache

{title}

Если вы хотите контролировать сервер Apache, мы должны знать некоторые аспекты:

  • Сколько запросов вы можете поддержать?
  • Скорость, с которой вы отвечаете на запросы
  • Какое время ожидания
  • Какие приложения или услуги могут быть улучшены или оптимизированы
Для измерения производительности сервера мы будем использовать инструмент под названием Apache Benchmark или ApacheBench.

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/ 
локальный

{title}

2. Запросы


Давайте посмотрим на запрос с параметрами. Мы отправляем 100 запросов группами по 30 человек за один раз на google.com и сохраняем данные, полученные в CSV-файле, код выглядит следующим образом:
 ab -g data.csv -n 100 -c 30 google.com/ 

{title}

Анализируем результат

 Серверное программное обеспечение: 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 found

3. Факторы, которые следует учитывать для улучшения производительности в 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

СТАТЬЯ ПО ТЕМЕ Как убрать вибрацию iPhone XR бесшумно

..

Чтобы не отставать, не забудьте подписаться на наш канал на YouTube! ПОДПИСЫВАТЬСЯ