Методика стресс-тестирования и анализа производительности
Методика стресс-тестирования и анализа производительности

Методика стресс-тестирования и анализа производительности

Основы тестирования производительности

Общие категории тестирования производительности

  • • Тестирование производительности. Используется для проверки того, соответствует ли производительность системы проектным ожиданиям.,Вообще говоря, давление на систему будет относительно небольшим.,Не перегружает систему,Просто простая проверка
  • • нагрузочный тест тест. Постоянно применяя давление нагрузки, мы находим оптимальную вычислительную мощность системы и наилучшее состояние производительности для достижения максимальной производительности. эффективности。Вообще говоря,нагрузочный тестизсоотношение результатов Тестирование производительностьиз оказалась немного выше.
  • • Тестирование стабильности. Может рассматриваться как нагрузочный подмножество теста,Неравномерное давление, оказываемое в течение длительного времени,Затем проверьте, все ли показатели системы в норме.
  • • Стресс-тест: наше общее из,Обычно мы обращаемся к этому при стресс-тестировании.,Используется для определения максимальной мощности, которую может выдержать система.,стресс-тест, как правило, будет доведен до максимальной точки, которую может выдержать система.,Тогда сделайте пиковый вывод.

Тип стресс-теста и режим стресса

Типы стресс-тестирования обычно делятся на два типа: стресс-тестирование одной службы и полноканальное стресс-тестирование.

Наши общие режимы давления включают следующие два:

  • • Параллельный режим(Имитировать пользовательский режим с точки зрения пользователя)
    • • Параллелизм означает количество одновременно работающих пользователей. С точки зрения бизнеса он моделирует количество одновременно работающих пользователей для достижения ожидаемого уровня параллелизма. Для расчета пропускной способности требуется преобразование. Но в некоторых сценариях это больше соответствует ожиданиям сценария.
  • • RPS модель(проситьиз Перспектива пропускной способности для моделирования пропускной способностимодель)
    • • RPS(Requests Per Второе) относится к количеству запросов в секунду. РПС Режим «режим пропускной способности». Путем установки количества запросов, отправляемых в секунду, с точки зрения сервера напрямую измеряется пропускная способность системы, что устраняет необходимость в одновременной работе. RPS Утомительное преобразование можно выполнить за один шаг.

Между параллельным режимом и режимом RPS нет преимуществ или недостатков. У каждого из них есть свои применимые сценарии.

Часто используемые инструменты измерения давления

Часто используемые инструменты измерения давленияследующее:

  • • wrk: https://github.com/wg/wrk
  • • ab: https://httpd.apache.org/docs/2.4/programs/ab.html
  • • webbench

Показатели эффективности

общий Показатели эффективности

Бизнес-показатели: количество параллелизма, пропускная способность, время отклика.
  • • Количество параллелизма. Это количество запросов, обрабатываемых системой одновременно. Для интернет-систем это обычно количество пользователей, одновременно получающих доступ к системе.
  • • Пропускная способность (максимальное значение QPS): относится к количеству запросов, обрабатываемых системой в единицу времени, что отражает возможности обработки системы. Обычно для измерения мы используем такие индикаторы, как TPS и QPS. Пропускную способность также можно разделить на среднюю, пиковую и минимальную.
  • • Время ответа: время обработки транзакции. Обычно относится к интервалу времени с момента выдачи запроса, момента возврата сервера после обработки и получения данных ответа. Обычно указывается среднее время отклика P95, P99. делиться。
    • • Время отклика и пропускная способность должны достичь точки баланса. По мере увеличения пропускной способности время отклика сначала будет поддерживать определенную точку, а затем начнет быстро увеличиваться, и впоследствии пропускную способность будет трудно увеличить. У нас есть требования ко времени ответа, поэтому мы не можем просто гоняться за пропускной способностью, мы должны найти максимальную пропускную способность в пределах разумного времени ответа.
    • • Время ответа должно зависеть от степени успеха. В случае возникновения сбоя это время ответа недействительно. Вероятность успеха, как правило, 100%。

Связь между ними такова:

Язык кода:javascript
копировать
QPS(TPS)= Количество параллелизма / среднее время ответа  
Теоретическое значение пропускной способности = Количество параллелизма / среднее время ответа
Количество параллелизма = QPS*среднее время ответа
Системные ресурсы: частота простоя ЦП, использование памяти, сетевой ввод-вывод, объем чтения и записи на диск, количество дескрипторов и т. д.

Счетчики производительности относятся к некоторым индикаторным данным о производительности сервера или операционной системы, включая загрузку системы, количество объектов и потоков, использование памяти, использование ЦП, использование дискового и сетевого ввода-вывода и другие индикаторы. Эти показатели являются важными параметрами для мониторинга системы и отражают некоторые ключевые показатели загрузки системы и возможностей обработки. Обычно эти показатели тесно связаны с производительностью. Эти показатели высоки, становятся узким местом и обычно указывают на возможные проблемы с производительностью.

Лучший способ — использовать проценты.

Справка: Среднее значение ненадежно. Самый правильный статистический метод — использовать статистику процентного распределения. Лучший практический опыт — использовать проценты. Например, индикатор верхнего процентиля (TP), TP50 означает, что 50% запросов выполняются меньше определенного значения, а TP90 означает, что 90% запросов выполняются меньше определенного времени.

Индикаторы наблюдения за измерением напряжения

Независимо от типа стресс-теста, показатели, которые необходимо наблюдать во время стресс-теста, обычно включают:

  • • Уровень успеха, уровень неудач
  • • Системные ресурсы (ЦП, память, пропускная способность, ввод-вывод).
  • • Время ответа,среднее время ответа、P95/P99время ответа,долженсосредоточиться на P95 и P99, не смотри только на среднее время, P99 Время может лучше оценить восприятие времени онлайн-пользователями.
  • • Пропускная способность (QPS/TPS)

Базовый пример данных стресс-теста выглядит следующим образом:

Формируйте подробные отчеты о стресс-тестах

Когда мы анализируем проблемы с производительностью системы, нам необходимо определить ключевые моменты. Для этого наш отчет о стресс-тестировании должен быть действительно эффективным, очень строгим и ясным. Мы должны анализировать узкое место шаг за шагом и понимать, почему оно является узким местом. достиг и как его оптимизировать? Поэтому мы обязаны подготовить строгий отчет о стресс-тестах. Вот некоторые впечатления:

  • • При выполнении стресс-теста вам необходимо найти точку перегиба производительности; если давление достигает узкого места, как только давление повышается, вам нужно немного отрегулировать его, пока не найдете точку перегиба производительности. точка перегиба производительность. Производительность системы представляет собой параболическую закономерность.,Продолжение давления после достижения пика производительности приведет к снижению производительности.,Поэтому наше стресс-тестирование является самым важнымиз Просто найди тотЛучшая точка перегиба производительности。Таким образом, весь процесс давления постепенно оказывает давление,Продолжайте оказывать давление после достижения пика производительности.,Если производительность не увеличивается, а снижается после продолжающегося давления, это означает, что она достигла точки перегиба.
  • • Как проанализировать узкие места производительности и найти QPS Не могу улучшитьиз В чем причина??
    • • QPS не будет постоянно расти. Он останется неизменным или даже снизится после достижения определенной точки, и наступит точка перегиба производительности. В это время вам нужно начать анализировать причины.
    • • Конкретный метод заключается в том, чтобы сначала поймать тех, кто не достиг предела. profile ситуация (процессор, блок, ввод-вывод, память), затем зафиксируйте те, которые только что достигли предела, и, наконец, зафиксируйте те, которые превысили лимит, а затем проанализируйте, какой системный ресурс или внешний интерфейс вызвал проблему с производительностью в этих случаях.
    • • Если определенный компонент или внешняя служба являются узким местом в производительности, необходим дальнейший анализ. Используется ли этот компонент неправильно? Вы не смогли справиться с количеством подключений? Нельзя сказать, что как только проблема какого-то компонента обнаружена, она решена и требуется дальнейшее и более глубокое обследование.
  • • Знайте автономный отдельнои Кластер может содержатьизпроизводительностьиточка перегиба
    • • Максимум для одной машины QPS Сколько?
    • • После параллельного расширения QPS Сколько это стоит? Это линейный рост (Это точно не линейный рост? После достижения определенного уровня обязательно возникнут узкие места в соответствующих ресурсах. Ключ в том, чтобы найти соответствующие узкие места)
  • • Как анализировать ресурсы системы, приведите пример CPU изпример
    • • первый взгляд ЦП, если CPU Если он не полный, значит, его нет. CPU проблема, вам не нужно беспокоиться о процессоре, а затем вам нужны другие ресурсы, такие как io, swap, Память, Сетевая карта и т. д.
    • • Если есть несколько CPU основной, Затем наблюдайте за cpu использования, мы не можем просто посмотреть на общий CPU Коэффициент использования
    • • если CPU Если пробег полный, то лови его CPU из profile, Понаблюдайте, чтобы увидеть, какой вызов занимает больше времени.

Сделайте оценку мощности

Прежде чем система будет подключена к сети, необходимо получить оценку, а затем проверить ее с помощью стресс-тестирования, чтобы понять каждую деталь, включая ресурсы, зависимости, состояние развертывания, распределение компьютерных залов, стратегии перехода на более раннюю версию, планы аварийного восстановления и планы резервного копирования. .

Оценка мощности является обязательным условием для выхода крупномасштабных систем в онлайн, потому что только проведя разумную оценку мощности, мы можем лучше спроектировать нашу систему в соответствии с масштабами системы, которую необходимо перенести, чтобы максимально минимизировать сопротивление машины. . Размещать больше трафика; после того, как планирование будет одобрено, нам необходимо использовать некоторые методы стресс-тестирования производительности, чтобы проверить, соответствует ли оно ожиданиям. После разумного планирования и оценки мощности мы можем знать только то, какое давление нам нужно оказать, когда мы проводим стресс-тестирование системы перед подключением к сети. Тогда оценка мощности - это не просто пощечина. Оценка мощности должна учитывать следующие моменты. :

  1. 1. Получите бизнес-показатели,Оцените общее количество посещений
    • • Спросите о продуктах и ​​операциях и получите УФ, PV и другие индикаторы
  2. 2. Оцените среднее количество посещений QPS
    • • 86400 секунд в день. Обычно считается, что запрос происходит в течение дня, то есть 4w секунд.
    • • Разделите общую сумму на общее время, и один день будет рассчитан как 4 секунды;
  3. 3. Пик оценки QPS
    • • При планировании мощности системы нельзя учитывать только среднюю QPS, но противостоять пику из QPS
    • • На основе диаграммы бизнес-кривой
    • • Общий пик QPS средний QPS из 3-4 раз
  4. 4. Оценить соответствующие показатели каждого модуля и подсистемы в рамках всей бизнес-системы.
  5. 5. Система оценки, ограничение на одну машину QPS,Оцените, сколько машин необходимо
    • • Провести стресс-тестирование и анализ данных
  6. 6. Соответствующее резервирование,Получены результаты испытаний под давлением,Нам действительно нужно сделать некоторые сокращения после выхода в Интернет.,Чтобы избежать слишком большого фактического давления на линии, что приводит к невозможности быстрого расширения мощности.

Сделайте хорошую работу по анализу и подведению итогов

хотеть Сделайте хорошую работу по анализу и подведению итогов,например:

  • • После того, как эта система выйдет в онлайн, сможет ли она действительно этому противостоять? ? Помимо данных измерения стресса, вам также необходимо иметь собственные оценки. Какие аспекты вашей системы могут иметь узкие места? Не вызовет ли это проблем после выхода в Интернет? Прежде чем система будет подключена к сети, должна быть проведена достаточная подготовка и общая оценка/оценка.
  • • Что делать, если система выйдет из строя после того, как система будет подключена к сети? Есть ли какие-либо планы по дросселированию? Есть ли варианты понижения версии?
  • • система сейчас 10w Какова ситуация с пользователем? Итак, если 1000 Вт пользователей из ситуации, Это линейный рост? Какие соображения необходимо принять во внимание?
  • • Прежде чем система будет подключена к сети, необходимо получить оценку, а затем проверить ее с помощью стресс-тестирования, чтобы понять каждую деталь, включая ресурсы, зависимости, состояние развертывания, распределение компьютерных залов, стратегии перехода на более раннюю версию, планы аварийного восстановления и планы резервного копирования. .

Методы стресс-тестирования для некоторых конкретных случаев

Подготовка тестовых данных

Высококачественные тестовые данные должны действительно отражать сценарии использования пользователя. Обычно мы предпочитаем использовать реальные онлайн-данные в качестве источника данных и использовать их в качестве тестовых данных для тестирования производительности после выборки, фильтрации и снижения чувствительности. Однако перед тестированием на реальных данных необходимо сначала смоделировать тестовые данные в автономном режиме. По крайней мере, проверить основные требования к производительности всей системы, прежде чем использовать реальные данные для тестирования производительности.

Метод стресс-тестирования уровня хранения (база данных и кэш)

Для сервисов без сохранения состояния параллелизм легко улучшить, и его можно расширять, не задумываясь. Однако для системы хранения с отслеживанием состояния максимальное количество параллелизма, которое она может поддерживать, не может быть бесконечно расширено. Поэтому мы должны знать, сколько может выдержать наш уровень хранения данных. Стресс-тест для такого типа кластера хранения обычно такой. следует:

  • • Сначала выполните испытание под давлением на одной машине.
  • • Затем проанализируйте общую мощность кластера. Следует отметить, что мощность кластера не является совокупным значением одной машины. Как правило, для каждой дополнительной машины в кластере можно использовать. 80% Уменьшение из способа грубой оценки.
  • • наконецнужно внимание,Общая сопротивляемость кластерануждатьсяхотетьдостичь разумного уровня, основанного на реальной ситуациииз Конфигурация,Дело не в том, что чем больше машин в кластере, тем лучше. Просто нажмите на значение, которое соответствует ожиданиям.
boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose