Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия | |||
— | instrumenty_dlja_provedenija_nagruzochnogo_testirovanija [2025/07/06 12:39] (текущий) – внешнее изменение 127.0.0.1 | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
+ | ====== Инструменты httpstat, ab, Httperf, Tsung для проведения нагрузочного тестирования сайта ====== | ||
+ | ~~Title: Оптимизация Веб-Сайта нагрузочное тестирование при помощи httpstat, ab, Httperf, Tsung ~~ | ||
+ | {{htmlmetatags> | ||
+ | metatag-description=(Выбор лучшего инструмента для нагрузочного тестирования может быть сложным. Сравните httpstat, Apache Bench (ab), Httperf, и Tsung для обеспечения максимальной производительности и стабильности вашего сайта.) | ||
+ | }} | ||
+ | |||
+ | |||
+ | Инструменты для проведения нагрузочного тестирования скриптов [[PHP|PHP]], | ||
+ | |||
+ | ===== Быстрое тестирование нагрузки на сайт ===== | ||
+ | Нагрузочное тестирование сайта — это процесс проверки производительности и надёжности веб-сайта или приложения путём создания условий, | ||
+ | |||
+ | Пока ваш сайт ещё достаточно молод, но нацелен на широкую аудиторию, | ||
+ | |||
+ | Так же бывает необходимо нагрузить сайт для выявления ошибок, | ||
+ | |||
+ | |||
+ | ===== 1. Apache Bench (ab) ===== | ||
+ | Подробно о бенчмарк утилите Apache Bench (ab) для анализа производительности HTTP серверов, | ||
+ | |||
+ | |||
+ | |||
+ | ===== 2. Httperf ===== | ||
+ | Утилита httperf, как и ab, проста в использовании, | ||
+ | |||
+ | Создание 100 000 сессий (по 5 вызовов через каждые 2 с) со скоростью 1000: | ||
+ | <file bash> | ||
+ | httperf --hog --server somesite.com --wsess=100000, | ||
+ | </ | ||
+ | <file bash> | ||
+ | Connection rate: 1055.0 conn/s (0.9 ms/conn, <=1022 concurrent connections) | ||
+ | Connection time [ms]: min 0.3 avg 865.9 max 7912.5 median 459.5 stddev 993.1 | ||
+ | Connection time [ms]: connect 31.1 | ||
+ | Connection length [replies/ | ||
+ | Request rate: 1966.6 req/s (0.5 ms/req) | ||
+ | Request size [B]: 91.0 | ||
+ | Reply rate [replies/ | ||
+ | </ | ||
+ | |||
+ | В отчете утилиты стоит сфокусироваться на: | ||
+ | |||
+ | * **Connection rate** — реальная скорость создания новых соединений. Она показывает способность сервера обрабатывать соединения, | ||
+ | * **Connection time [ms]** — время “жизни” успешных соединений между инициализацией и закрытием. Опять же показывает производительность сервера при обработке большого количества соединений. | ||
+ | * **Request rate** — скорость обработки запросов. То есть, количество запросов, | ||
+ | |||
+ | ===== 3. Tsung ===== | ||
+ | Tsung мощная, | ||
+ | |||
+ | В Ubuntu 20.04.3 LTS утилита Tsung присутствует в репозитории, | ||
+ | <file bash> | ||
+ | # apt search ^tsung | ||
+ | Sorting... Done | ||
+ | Full Text Search... Done | ||
+ | tsung/focal 1.7.0-3.1 amd64 | ||
+ | distributed multi-protocol load testing tool | ||
+ | </ | ||
+ | Установка tsung | ||
+ | <file bash> | ||
+ | apt install tsung | ||
+ | </ | ||
+ | |||
+ | Программе tsung нужно передать файл с описанием сценария теста. Вот пример простого тестового сценария: | ||
+ | <file xml tsung.xml> | ||
+ | <?xml version=" | ||
+ | < | ||
+ | <tsung loglevel=" | ||
+ | < | ||
+ | <client host=" | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | <server host=" | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | < | ||
+ | <users maxnumber=" | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | <option name=" | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | <session name=" | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | |||
+ | |||
+ | <for var=" | ||
+ | < | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | В нём указано что к localhost к порту 8087 надо подключатся по вебсокетам. И создавать по 2500 тысячи подключений каждую секунду до тех пор, пока их в сумме не наберётся 64000. | ||
+ | |||
+ | То есть этот сценарий просто создаёт тестовую нагрузку в 64000 пользователей онлайн. Тест синтетический и реальные 64000 будут нагружать сервер несколько по другому, | ||
+ | |||
+ | **Нагрузка в 64000 это максимум** который позволит создать операционная система. Если хотите больше, | ||
+ | |||
+ | |||
+ | Отчет будет состоять из графиков и важной дополнительной информации. В нем стоит обратить внимание на: | ||
+ | |||
+ | * Session — общее количество пользователей и количество одновременных сессий в секунду, | ||
+ | * Request — время отклика веб-сервера, | ||
+ | * Connect — время, требуемое на подключение, | ||
+ | ===== 4. httpstat удобный инструмент для анализа загрузки сайта | ||
+ | httpstat – это простой и удобный скрипт [[Python|Python]] для Linux, которая используется для измерения и анализа производительности веб-сервисов. Она выводит время, затраченное на каждый этап общения с сервером, | ||
+ | |||
+ | Установка | ||
+ | <file bash> | ||
+ | wget -c https:// | ||
+ | </ | ||
+ | Простой запрос к веб-сервису: | ||
+ | <file bash> | ||
+ | ~$ httpstat https:// | ||
+ | Connected to xxx: | ||
+ | |||
+ | HTTP/2 200 | ||
+ | server: nginx/ | ||
+ | date: Sun, 21 Jan 2024 09:18:56 GMT | ||
+ | ... | ||
+ | |||
+ | Body stored in: / | ||
+ | |||
+ | DNS Lookup | ||
+ | [ | ||
+ | | ||
+ | namelookup: | ||
+ | connect: | ||
+ | pretransfer: | ||
+ | starttransfer: | ||
+ | | ||
+ | |||
+ | </ | ||
+ | Использование метода POST для отправки данных: | ||
+ | <file bash> | ||
+ | httpstat -X POST -d " | ||
+ | </ | ||
+ | Запрос с заголовками: | ||
+ | <file bash> | ||
+ | httpstat -H " | ||
+ | </ | ||
+ | Из вывода команды справки | ||
+ | <file bash> | ||
+ | export HTTPSTAT_SHOW_IP=false | ||
+ | export HTTPSTAT_SHOW_SPEED=true | ||
+ | export HTTPSTAT_SAVE_BODY=false | ||
+ | export HTTPSTAT_DEBUG=true | ||
+ | </ | ||
+ | После того, как вы закончите добавлять их, сохраните файл и выполните приведенную ниже команду для внесения изменений: | ||
+ | <file bash> | ||
+ | $ source ~ /.bashrc | ||
+ | </ | ||
+ | httpstat выделяется своим понятным интерфейсом и детализацией временных метрик. В то же время, утилиты, | ||
+ | ===== Список утилит для нагрузочного тестирования сайта ===== | ||
+ | * Бенчмарк [[siege]] - утилита для регрессивного тестирования и анализа производительности HTTP | ||
+ | * Бенчмарк [[http:// | ||
+ | * Apache [[JMeter]] — инструмент для проведения нагрузочного тестирования | ||
+ | * [[Locust]] - инструмент тестирования пользовательской нагрузки. Позволяет писать сценарии на [[Python]]. | ||
+ | ===== Заключение ===== | ||
+ | Apache Bench, Httperf и Tsung отлично подходят для тестирования нагрузки на большие и маленькие сайты. | ||
+ | |||
+ | Список инструментов для проверки производительности веб-сервера и тестирования нагрузки на сайт не ограничивается приведенным в этом материале. Подобных утилит достаточно много, как платных, | ||
📌 Удобный подбор VPS по параметрам доступен на DIEGfinder.com - официальном инструменте проекта DIEG. Это часть единой экосистемы, созданной для того, чтобы помочь быстро найти подходящий VPS/VDS сервер для любых задач хостинга.
📌 Для тестирования скриптов, установщиков VPN и Python-ботов рекомендуем использовать надежные VPS на короткий срок. Подробнее о быстрой аренде VPS для экспериментов - читайте здесь.
💥 Подпишись в Телеграм 💥 и задай вопрос по сайтам и хостингам бесплатно!7 Самых Популярных Статей
- Как запустить скрипты и веб-приложения на Python
- Что такое страны TIER 1,2,3
- 7 способов сравнения файлов по содержимому в Windows или Linux
- Установка и тестирование веб-панели HestiaCP
- Nginx простые примеры конфигурации
- top, htop, atop определение загрузки ОС (Load average, LA)
- Использование rsync в примерах
7 Самых Популярных Обзоров
- Хостинг для Python-скриптов и приложений
- ТОП 4 лучших антидетект браузеров (Бесплатные & Платные)
- Подборка купонов (промокоды) на хостинг, антидетект браузеры
- Обзор THE.Hosting (PQ Hosting): надежный хостинг с профессиональной поддержкой
- Хостинг в России
- Хостинг в Европе
- Обзор браузера Dolphin {anty} для мультиаккаунтинга