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

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

  1. Помогает нам понять вычислительную мощность системы: показатель производительности показывает, сколько запросов система способна обработать при заданной нагрузке. Как мальчик-курьер,Сколько посылок он может доставлять каждый день?,Это число и есть его вычислительная мощность. Для системы,Метрика производительности показывает, сколько запросов он может обработать.,Таким образом, мы можем узнать, соответствуют ли вычислительные возможности системы нашим потребностям.
  2. Помогите нам оценить стабильность системы: Показатель производительности также помогает нам оценить стабильность системы в условиях высокой нагрузки. как машина,Нам нужно знать, стабилен ли он на высоких скоростях.,Необходимо знать его максимальную скорость и производительность. Для системы,Индикатор производительности может сказать нам, способна ли система оставаться стабильной в условиях высокой одновременности.,Никаких сбоев или медленного времени отклика.
  3. Помогите нам найти узкое место и направление оптимизации производительности. Индикатор производительности может помочь нам найти узкое место производительности и направление оптимизации системы. Как пробка,Нам нужно знать, где пробка.,Только тогда можно будет принять соответствующие меры. Для системы,Индикатор производительности может сказать нам, какое соединение вызывает проблемы с производительностью.,Например, медленный ответ базы данных, высокая задержка в сети и т. д.,Это помогает нам найти направление оптимизации.

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

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

2. Время ответа

Время ответа — один из ключевых показателей тестирования производительности. Полное время ответа клиента в основном включает в себя следующие компоненты:

  1. Время, когда клиент отправил запрос
  2. Время, необходимое для передачи запроса по сети
  3. Время, необходимое запросу для входа в очередь на стороне сервера и ожидания обработки.
  4. Время, необходимое серверу для обработки запроса
  5. Время, необходимое для возврата ответа по сети.
  6. Время, когда клиент получил ответ

Время каждой ссылки можно получить следующими способами:

  1. Время клиента: код клиента записывает время отправки запроса и получения ответа, а рассчитанная разница — это время клиента.
  2. Сетевое время: используйте инструмент захвата пакетов для захвата пакетов запросов и ответов и расчета разницы во времени между пакетами запроса и ответа во время передачи по сети.
  3. Время в очереди сервера: получите разницу во времени между поступлением запроса в очередь и началом обработки через журналы или точки отслеживания.
  4. Время обработки сервера: Получите разницу во времени между началом обработки запроса и окончанием обработки через журналы и точки отслеживания.
  5. Общее время ответа: у клиента есть своя статистика, а разницу во времени между всем запросом и ответом также можно получить путем перехвата пакетов.

Если время отклика разделить на три категории, его можно разделить на:

  • Время ответа клиента: после того, как клиент инициирует запрос, время от начала запроса до получения ответа сервера.
  • Время потребления сети: время, необходимое для передачи запроса по сети, включая время, необходимое для отправки запроса и получения ответа.
  • Время обработки сервера: после того, как сервер получает запрос, требуется время для его обработки и возврата ответа.

Для получения данных по этим компонентам можно использовать следующие методы:

  • Время ответа клиента: Тестирование Инструменты производительности обычно предоставляют статистику времени ответа клиента, которую можно получить непосредственно из отчета о тестировании инструмента тестирования.
  • Время потребления сети: вы можете использовать инструменты захвата сетевых пакетов, такие как Wireshark, для захвата пакетов сетевых данных запросов и ответов и получения времени передачи по сети.
  • Время обработки на стороне сервера: вы можете добавить журнал или таймер в код на стороне сервера, чтобы записывать время начала и время окончания обработки запроса. Рассчитайте разницу во времени между ними, чтобы определить время обработки на стороне сервера.

на практике,Эти данные могут быть собраны и рассчитаны автоматически с помощью инструмента «Тестирование производительности». Например,существоватьApache JMeterсередина,Можно использовать"Response Time" Прослушиватель, чтобы получить время ответа, используйте «Просмотр» Results in Table" Прослушиватель для просмотра времени передачи по сети и использования журналов или таймеров для записи времени обработки на стороне сервера.

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

3. Количество одновременных пользователей

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

  1. мерасистемаизодновременноспособность:Количество одновременных Пользователи могут использоваться для оценки производительности системы при одновременной обработке нескольких запросов пользователей. добавив Количество одновременных пользователей,Cansystem тест производительности в условиях высокой нагрузки,Оцените возможности системы по одновременной обработке.
  2. Обнаружьте узкое место системы: постепенно увеличивая Количество одновременных пользователей,Можно наблюдатьсистемаизпроизводительность Следует ли это?Количество одновременных количество пользователей увеличивается и уменьшается. Когда система достигает количества одновременных пользователейизвремя пик,Если наблюдается значительное снижение производительности,Может означать, что в системе есть узкое место,Требует оптимизации.
  3. Оцените стабильность системы: Количество одновременных пользователейиз Увеличиватьвстреча Увеличиватьсистемаизнагрузка,Наблюдая за стабильностью системы в сложных одновременных ситуациях,Оценить надежность и стабильность работы системы можно на протяжении длительного периода времени.

Конкретный метод расчета количества одновременно работающих пользователей может быть определен на основе требований к тестированию и инструментов тестирования. Вот распространенный метод расчета:

  1. Определить тестовую сцену: определить количество одновременных Верхний предел и шаг увеличения количества пользователей. Например, установите Количество одновременных количество пользователей начинается с 10 и увеличивается на 10 пользователей каждый раз, пока не будет достигнуто заданное максимальное количество. одновременных пользователей。
  2. Настройка инструмента тестирования: использование Тестирования производительностиинструмент,Например, Apache JMeter, настройте план тестирования и установите количество потоков в группе потоков на текущее количество. одновременных пользователей。
  3. Выполнить тест: Запустите Тестирование производительности и наблюдайте за показателями производительности системы, такими как время отклика, пропускная способность и т. д.
  4. Увеличивать Количество одновременных пользователей:постепенно Увеличивать Количество одновременных пользователей, повторяйте шаги 2 и 3, пока не достигнете заданного максимального количества. одновременных пользователей。
  5. Результаты анализа: По результатам тестирования системы анализа в разном количестве. одновременных Производительность под пользователями, например, изменения времени отклика, изменения пропускной способности и т. д.

в,нужно вниманиеизда:Максимальное количество одновременных пользователей — это максимальное количество пользовательских запросов, которые система может обрабатывать одновременно.

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

  • Когда система достигает максимального количества одновременных Если производительность пользователей значительно падает, это может означать, что в системе есть узкое место и ее необходимо оптимизировать. Максимальное количество одновременных Пользователи могут помочь обнаружить узкие места системы в условиях высокой нагрузки и направить работу по оптимизации производительности.
  • максимум Количество одновременных пользователейизтест Оценить надежность и стабильность работы системы можно на протяжении длительного периода времени.по наблюдениюсистемасуществоватьмаксимумнагрузка情况下из Производительность,Может определить, может ли система работать стабильно,Избегайте таких проблем, как падение производительности или сбой системы.

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

  1. исходный Количество одновременных пользователей: установите начальное количество на основе предполагаемой мощности системы и требуемой производительности. одновременных пользователей。
  2. Увеличивать Количество одновременных пользователей:постепенно Увеличивать Количество одновременных пользователей,Добавляйте определенное количество пользователей каждый раз,Например Добавляйте по 10 пользователей каждый раз。
  3. мониторсистемапроизводительность:существоватькаждый раз Увеличивать Количество одновременных После пользователей наблюдайте за показателями производительности системы, такими как время отклика, пропускная способность и т. д. Если производительность системы значительно падает, это может означать, что система достигла максимального количества. одновременных пользователей。
  4. Продолжать увеличивать количество одновременных пользователей: Если производительность системы по-прежнему стабильна, вы можете продолжать увеличивать Количество. одновременных пользователей до тех пор, пока производительность системы существенно не упадет или не достигнет заданного максимума. одновременных пользователей。

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

4. Пропускная способность

Пропускная способность — очень важный показатель при тестировании производительности.

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

  1. Оцените верхний предел производительности обработки,Отражает максимальную грузоподъемность.
  2. Сравните влияние различных аппаратных архитектур, алгоритмов и т. д. на пропускную способность.
  3. Найдите компромисс с другими показателями качества, чтобы найти баланс. Метод расчета:
  4. Общее количество запросов, выполненных за время/время тестирования.
  5. Среднее количество выполненных запросов в секунду.
  6. Пиковая точка кривой пропускной способности при различных нагрузках — это максимальная пропускная способность. Например: Если серверсуществовать10Обрабатывается в течение нескольких секунд1000запросы,Тогда его пропускная способность:1000/10 = 100 req/s

По мере увеличения нагрузки пропускная способность сначала увеличивается, а затем снижается. Пиковая точка пропускной способности — это максимальная вычислительная мощность сервера. Таким образом, пропускная способность интуитивно отражает возможности обработки системы и является важным индикатором для нагрузочного тестирования и планирования мощности. Увеличение пропускной способности позволяет обрабатывать больше запросов, но есть и другие компромиссы.

5. В чем разница между пропускной способностью и параллелизмом?

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

Пропускная способность:да指существоватьединица временисистемаиметь дело сизпроситьколичество。В основном используется для оценкисистемаизиметь дело сспособностьипроизводительность。проходитьтестсистемаиз Пропускная способность,Может понять количество запросов, которые система способна обработать при заданной нагрузке.,Тем самым оценивая производительность системы. Пропускная способность рассчитывается путем подсчета количества запросов в единицу времени.

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

Они имеют следующие различия:

  1. Пропускная способность (Throughput) указывает на количество запросов или транзакций, которые могут быть обработаны за единицу времени. Чем выше пропускная способность, тем выше вычислительная мощность.
  2. Количество одновременных пользователей(Concurrent Пользователи) указывает количество активных пользователей, одновременно получающих доступ к системе. Количество одновременных Увеличение количества пользователей увеличит нагрузку на систему. Применимые сценарии для обоих:
  • Пропускная способность больше ориентирована на верхний предел общей вычислительной мощности тестсистемы.,За максимальную нагрузку, которую может выдержать тестсистема.
  • Количество одновременных пользователей фокусируется на моделировании посещений пользователей в реальных сценариях и используется для повышения производительности при различных объемах пользователей.

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

Например, если Количество системы одновременных пользователейдля100,И пропускная способность составляет 200 запросов в секунду.,Затем система обработала 200 запросов за единицу времени (одну секунду).,Эти запросы могут поступать от сотен пользователей одновременно.

Например: Нам нужна максимальная вычислительная мощность веб-сайта электронной коммерции. Может количественно увеличить количество одновременных пользователей, пока пропускная способность не достигнет своего пика, а затем начнет снижаться. Максимальная пропускная способность в это время — это верхний предел обработки системы, соответствующий Количеством. одновременных пользователей — максимальное количество пользователей, которое может поддерживать система. Тогда мы можем использовать разное количество одновременных пользователей, время отклика тестсистемы, уровень успешности и другие показатели в различных распространенных сценариях. Таким образом, оба параметра очень важны, и разумная настройка обоих может полностью улучшить производительность. Тест пропускной способностиPeak,Количество одновременных пользователей имитирует реальные сцены.

6. Что такое нагрузка и в чем разница между количеством запросов и количеством параллелизма?

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

Разница между нагрузкой, количеством запросов и количеством параллелизма следующая:

  • Нагрузка: Нагрузка — это описание общего давления системы.,Он включает в себя различные требования к ресурсам и операции, с которыми сталкивается система. Нагрузки могут состоять из нескольких аспектов.,Напримерпользовательская строкадля、одновременнопросить、Объем данных、Задержка сети и т. д. Нагрузки можно использовать для моделирования различных рабочих нагрузок, с которыми сталкивается система в реальном использовании.
  • Количество запросов. Под количеством запросов понимается количество запросов, отправленных в систему за единицу времени. Это один из показателей вычислительной мощности системы. Количество запросов обычно используется для оценки возможностей обработки системы при заданной нагрузке, то есть количества запросов, которые система может обработать в единицу времени.
  • число одновременно: число одновременно означает количество одновременных запросов пользователя.,Указывает количество пользовательских запросов, обрабатываемых системой в данный момент. Это один из показателей, позволяющих измерить способность системаодновременно. Число одновременно обычно используется для оценки одновременнопроизводительности при заданной нагрузке.,То есть количество пользовательских запросов, которые система может обрабатывать одновременно.

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

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

Разницу и взаимосвязь между нагрузкой, количеством запросов и количеством параллелизма можно объяснить таким сценарием: предположим, мы хотим провести тест производительности системы покупок и настроить 2000 пользователей на доступ и работу системы покупок в течение одного часа. . Так:

  • Количество запросов: за 1 частест,Каждый пользователь может выполнять несколько операций,Например, поиск продуктов, добавление в корзину, оформление заказа и т. д.,Общее количество запросов может достигать 10000 человек.
  • Количество одновременно: мы можем настроить каждого пользователя на отправку запроса каждые 10 секунд, поэтому одновременно будет примерно 2000/10=200 одновременных запросов.
  • Нагрузка: Весь 1 час теста,системе необходимо выдержать нагрузку в общей сложности в 10 000 запросов. Это можно увидеть,Нагрузка представляет собой общий объем запросов.,Отражает общее количество запросов, которые системе необходимо обработать за определенный период времени. Число одновременно представляет собой количество мгновенных одновременных запросов на обработку. Количество запросов — это общее количество запросов за весь процесс тестирования. Все три необходимо рассматривать в сочетании с временным интервалом. Регулируя указанное выше количество одновременных пользователей и частоту запросов.,Для производительности тестсистемы могут создаваться различные нагрузки.

В приведенных выше случаях мы можем увидеть различные значения и применения нагрузки, количества запросов и количества параллелизма при тестировании производительности. Нагрузка — это описание общей нагрузки на систему, а количество запросов и количество параллелизма — это показатели, используемые для оценки возможностей обработки системы и производительности параллелизма.

7. Процесс тестирования производительности

Как проводить тестирование производительности в реальной работе, в основном то же самое. Вы можете выполнить тестирование производительности, выполнив следующие действия:

  1. Уточните цель

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

  1. Выберите ключевые показатели

Выберите один или два наиболее важных показателя производительности, на которых следует сосредоточиться в зависимости от цели теста, например максимальное время ответа, среднее время ответа, пропускная способность, частота ошибок и т. д. Нет необходимости или возможности тестировать все индикаторы.

  1. Тестовая сцена дизайна

Разработайте разумный сценарий количественного тестирования на основе фактического сценария использования системы и определите одновременных пользователей、Объем запроса、продолжительность теста и другие параметры.

  1. Запустите тестовый пример

Создавайте тестовые примеры, запускайте их по заданным сценариям и генерируйте нагрузки для тестирования.

  1. Собирайте и анализируйте результаты

Используйте соответствующие инструменты для сбора результатов мониторинга ключевых показателей эффективности и проведения анализа.

  1. Оптимизация звена Найдите узкие места (ЦП, ввод-вывод, сеть и т. д.) по результатам анализа,Тогда оптимизируйте.
  2. Повторить тест Повторно запустите тест, чтобы проверить результаты оптимизации.

Короче говоря, вы можете начать с небольшого объема, выбрать наиболее важные индикаторы, разработать репрезентативные сценарии тестирования и использовать это в качестве отправной точки для постепенного расширения объема тестирования и оптимизации системы.

Надеюсь, приведенная выше информация будет вам полезна! Если у вас есть какие-либо вопросы, пожалуйста, не стесняйтесь спрашивать меня.

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