Как сделать тест давления на стороне сервера

Архитектура

Эта статья взята из блога:Как сделать тест давления на стороне сервера

Не все содержание сообщения в блоге является авторским.

Может быть, многие студенты QA и RD похожи на меня: у них нет систематического понимания нагрузочного тестирования на стороне сервера, такое впечатление, что они используют инструменты стресс-тестирования, такие как Jmeter, чтобы нагрузить один интерфейс, настроить количество потоков и циклов для создания разных стресс, и, наконец, рассчитать TPS и вероятность успеха, и вы сделали? Несмотря на то, что в Интернете есть много статей, связанных со стресс-тестированием, большинство из них представляют собой начальный уровень использования инструментов стресс-тестирования.Некоторые представляют собой простые объяснения процедур и индикаторов стресс-тестирования или полные ссылки на возможности стресс-тестирования и возможности стресс-тестирования нескольких крупных производителей Знакомство с платформой. Этим статьям либо не хватает систематической проработки, либо они слишком абстрактны и трудны для понимания, а также не очень удобны для студентов, не имевших большого опыта стресс-тестирования.

我裂开了

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


фон стресс-теста

Тестов много, и статей в интернете много.[1]Я поиграю с концепциями и придумаю три существительных: стресс-тестирование, тестирование производительности и нагрузочное тестирование. В нормальных условиях нет необходимости проводить такое тонкое разграничение понятий, я думаю, что невозможно полностью разграничить соответствующие границы этих трех понятий, по крайней мере, с точки зрения программной логики, и больше различий возникает только из-за разных стресс-тестов. Таким образом, хотя разница между этими понятиями игнорируется, его можно назвать стресс-тестом или тестом производительности.

Зачем нужно стресс-тестирование

Возьмем, к примеру, хорошо известную техническим специалистам компанию Alibaba, которая должна быть лучшим производителем в Китае по испытанию давлением. Событие Ali 2012 Double 11, которое хорошо известно внешнему миру, в 0:00 11 ноября 2012 года различные системы Али сообщили об ошибках, немедленно разместили заказ, сообщили об ошибке в оплате корзины, сообщили об ошибке в платежной системы, а также потерянные товары в корзине.Система показала, что процент успешных транзакций составлял менее 50%, что приводило к большому количеству перепродаж, что приносило Али большие убытки. После Двойного 11 в том же году студенты в инвентаре, товарах, возмещениях и соответствующей базе данных, чтобы справиться с проблемами, вызванными перепродажей, работали день и ночь, чтобы добавить две недели работы, и в то же время дали пользователям много неудачного опыта покупок.

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

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

Стресс-тест для одной системы и полносвязный стресс-тест

Почему недостаточно провести стресс-тест одной системы?

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

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

Процесс измерения давления

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

  1. Формулировка цели измерения напряжения
  2. Разбираем ссылку на стресс-тест
  3. Подготовка среды стресс-теста
  4. Построение данных измерения давления
  5. стресс тест
  6. Расположение узких мест и тонкая настройка емкости
  7. Резюме стресс-теста

常规压测流程


Цель испытания под давлением

Измерение давления

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

Индикаторы измерения давления

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

  • QPS: Query Per Second, количество запросов, обрабатываемых в секунду.
  • TPS: Transactions Per Second, количество транзакций, обрабатываемых в секунду, TPS
  • RT: Время отклика, время отклика, эквивалентное задержке Средняя задержка оценки RT, задержка Pct (процентильный квантиль). Среднее значение не может отражать фактическую задержку ответа службы.В реальном стресс-тесте обычно ссылаются на Pct90, Pct99 и другие показатели.
  • Использование ЦП: для рассмотрения балансировки нагрузки после простоя узла, как правило, использование ЦП
  • Использование памяти: использование памяти, обычно наблюдайте, есть ли в памяти скачки или утечки.
  • Индикатор нагрузки: нагрузка ЦП относится не к коэффициенту использования ЦП, а к статистической информации о сумме количества процессов, которые ЦП обрабатывает и ожидает обработки ЦП за определенный период времени, указывающий нагрузка ЦП. Как правило, Нагрузка ссылка 1иссылка 2
  • Коэффициент попаданий в кэш: сколько трафика может попасть в слой кэша (redis, memcached и т. д.).
  • База данных, отнимающая много времени: база данных — это жизнь бизнеса, и часто бизнес терпит крах из-за зависания базы данных.
  • Пропускная способность сети: является ли пропускная способность узким местом?
  • Частота ошибок ответа интерфейса или объем журнала ошибок

Вот разница между QPS и TPS:

  • QPS обычно относится к количеству запросов, которые сервер может ответить в секунду, или абстрактно понимает, сколько сетевого трафика он может обрабатывать в секунду.
  • TPS относится к завершенной транзакции, а транзакция может содержать ряд процессов запроса. Например, 🌰 посещение веб-страницы — это TPS, но посещение веб-страницы может инициировать несколько запросов к нескольким серверам, включая текст, js, изображения и т. д. Эти запросы будут учитываться как несколько запросов в секунду, поскольку все они являются потоком.

Во время тестирования производительностиСреднее значение очень ограничено, среднее значение представляет 50 % суммы до и после. Что означает среднее значение для чувствительного показателя эффективности? Получается, что 50% пользователей довольны временем отклика, но 50% пользователей воспринимают задержку ответа? Или система гарантированно будет стабильной в 50% случаев и в неуправляемом состоянии в 50% случаев?

Метрика среднего времени ответа будет одинаковой только в том случае, если время ответа на каждый запрос почти одинаково. В качестве другого примера, понятие богатства на душу населения очень песочное.Я думаю, все понимают, что в 2019 году была очень забавная новость-Среднемесячная зарплата сотрудников Tencent составляет 70 000, понять, насколько ненадежно среднее значение. На следующем рисунке представлена ​​гистограмма времени отклика системы в реальном мире.У RT меньше запросов в первых 20%, но поскольку время занимает очень мало времени (более высокое среднее значение может быть связано с попаданием в кэш или быстрым сбоем системы). запрос), хотя большинство RT ниже среднего, это фактическая производительность системы.

均值并不能反映实际情况,引用自:https://www.dynatrace.com/news/blog/why-averages-suck-and-percentiles-are-great/

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

Подводя итог, можно сказать, что более научный метод оценки должен指标-成功率-流量Три связаны вместе:

xx% ответов были возвращены в течение xx миллисекунд с вероятностью успеха xx%.

В соответствии с этим руководством можно получить некоторые тестовые идеи:

  1. При ограничении времени отклика наибольшая пропускная способность системы (пропускная способность здесь строго не определена, ее можно рассматривать как QPS или TPS)
  2. При условии 100% успеха, независимо от времени отклика, пропускная способность, которую может выдержать система
  3. Допустимая определенная частота отказов и медленный ответ, максимальная пропускная способность, которую может выдержать система (95% успеха, максимальное количество запросов в секунду, когда время ответа на первые 95% запросов составляет xx миллисекунд)
  4. В приведенном выше сценарии также следует учитывать время и ресурсы. Например, максимальная пропускная способность для 10 минут отличается от максимальной пропускной способности для 1 часа. IO), пропускная способность) является разумным

оценка цели

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

Исторические данные мониторинга

Интерфейс запущен и имеет исторические данные мониторинга, вы можете просмотреть исторические данные и узнать пиковые значения QPS и PCT99. 🌰 Если интерфейс А был в сети и контролировался, то данные мониторинга запасов можно использовать после крупного события или после достаточно долгого времени в сети.

аналогия

Нет исторических данных для новых интерфейсов или интерфейсов, которые не отслеживаются в режиме онлайн, но есть исторические данные мониторинга для интерфейсов с аналогичными функциями, и цель опрессовки может быть получена по аналогии. 🌰 Если исходить из того, что интерфейс заказа Taobao Double Eleven QPS=x и RT=y в прошлом году, то в этом году платформа Tmall была реорганизована. также используется. , цель RT=y (пример не строгий, просто поймите).

оценить

Для нового интерфейса или интерфейса, который не отслеживается онлайн, нет исторических данных, и нет аналогичных данных функционального интерфейса для тестирования параметров.В настоящее время необходимо оценить пиковое значение.Общие методы включают:8/2原则- 80% запросов в день приходят в 20% случаев.

Топ QPS = (Общий PV * 0,8) / (60 * 60 * 24 * 0,2)

Если нет особых требований к RT, обычно принимается значение по умолчанию:

  • Класс одной таблицы с одной службой, RT
  • Более сложный интерфейс, RT
  • Большой объем данных или интерфейс с длинной цепочкой вызовов, RT

🌰-1 Всплеск активности в электронной коммерции, предполагается, что одновременно будут участвовать 1000 человек.Для простоты предполагается, что общее количество запросов в секунду составляет 1000 Вт. Из-за различных форм обратного отсчета seckill на внешнем интерфейсе запрос имеет разбивку на 2 секунды, а веб-серверы, такие как nginx, имеют 20% шанс отклонить запрос, поэтому общее количество запросов в секунду интерфейса заказа = 1000w/2 * (1 - 0,2) = 400 Вт/с, конечная цель измерения давления составляет 400 Вт/с QPS.

🌰-2 Электронная коммерция в течение всего дня по недорогим покупкам, Меч Убийцы Драконов, нажмите, чтобы отправить, один нож 99 уровня, эммммм не в тему. В соответствии с принципом 8/2 предполагается, что будут пики трафика в общей сложности в течение 4 часов после обеденного перерыва (12-1) и после окончания работы вечером (7-10). = активный интерфейс на весь день PV / (4*3600 с).

разное

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

常见性能折线图


Подготовка к испытаниям под давлением

сцена стресс-теста

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

  1. Часто задаваемые бизнес-сценарии (обновление раскрывающегося меню на главной странице Toutiao)
  2. В ключевых бизнес-сценариях частота использования низкая, и как только проблема возникнет, она будет очень серьезной (вход в учетную запись WeChat).
  3. Сценарии высокопроизводительного потребления (заказы, размещенные на Taobao)
  4. Сценарии, в которых возникли проблемы

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

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

Среда стресс-тестирования

После разбора сценариев стресс-тестирования необходимо убедиться, что ссылка на стресс-тестирование завершена и соответствует ожиданиям. Должен ли каждый сервис на ссылке перегружаться из одного сервиса в другой? Были ли рассмотрены последующие услуги, такие как аудит безопасности? Будут ли грязные данные, сгенерированные во время стресс-тестирования, влиять на онлайн-данные? Он также может быть уточнен для конкретной нижестоящей службы, которая не участвует в стресс-тесте.Как с этим быть? Для решения вышеуказанных проблем может потребоваться продвижение деловых сторон, связанных со всей ссылкой, для проведения соответствующей трансформации бизнеса, чтобы адаптироваться к трафику измерения давления.После преобразования требуется проверка самопроверки, прежде чем измерение давления может быть официально Ниже приведены некоторые ключевые вопросы, некоторые из которых цитируются из [Ссылки в конце статьи] [Примерное представление о полносвязном стресс-тестировании].

проблема с грязными данными

  • Если он работает в независимом наборе сред, этой проблемы не существует.
  • Теневая таблица: если она работает в режиме онлайн, данные обычно записываются в теневую таблицу (таблица с другим именем, которая соответствует исходной таблице данных в схеме) вместо исходной таблицы данных, чтобы изолировать данные измерения давления. из онлайн данных.
  • Белый список: укажите идентификатор теста или тестовую учетную запись и используйте унифицированный идентификатор, чтобы различать данные стресс-теста после хранения и обрабатывать их единообразно.
  • Нагрузочное тестирование и преобразование различных уровней хранения, включая проблемы изоляции, такие как уровни кэша, очереди сообщений и автономные базы данных. Традиционный метод находится в ссылке на стресс-тест.Прозрачная метка измерения давления(также называемая окраской трафика, что довольно ярко), например, добавление данных jsonis_stressMark, уровень хранения различает трафик измерения давления в соответствии с меткой и добавляет указанный префикс и суффикс к данным измерения давления, а затем сохраняет специальную обработку.

Как быть с сервисами, которые не участвуют в стресс-тестировании

  • Мок-сервер: записывая запрос и ответ, код бизнеса не является инвазивным.
  • Заглушка службы: обработка трафика измерения давления, аналогичная заглушке одиночного теста, заглушка кода имитирует службу для возврата ответа, и код необходимо изменить.

主流的业务架构压测图,引用自:https://lishoubo.github.io/2018/07/15/全链路压测的大概思路/

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

Примечание. Как определяются восходящий и нисходящий потоки?RFC 2616

Upstream and downstream describe the flow of a message: all messages flow from upstream to downstream.

Нисходящий вход поступает из восходящего вывода.Предполагая, что есть службы A и B, A вызывает B (или A зависит от B), тогда B является восходящим потоком A, а A является нисходящим потоком B, потому что вход A исходит из выхода B (A вызывает B, получает выход B).

Проще говоря, чем ближе что-то к пользователю, тем ниже по течению.

Более распространенным методом является непосредственное использование стресс-теста онлайн-среды для ручного или периодического запуска стресс-теста в период времени, когда нагрузка на компьютер низкая (например, поздно ночью).

Система контроля измерения давления

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

  • Основной интерфейс и зависящий от ядра трафик, время отклика и вероятность успеха
  • очередь сообщений, кеш, база данных
  • Физические ресурсы машины

Данные измерения давления

На самом деле ничего загадочного в данных стресс-тестов нет.Трудно понять,что говорят в интернете,когда данные выдаются по бизнес-модели.Выражение слишком абстрактное,но трудно для понимания.На самом деле это означает создание необходимых данных в соответствии с основным бизнес-сценарием. Ключ в том, как с научной точки зрения смоделировать распространение онлайн-данных, ссылаясь наСсылки в конце статьи, рекламная акция Double Eleven от Alibaba имеет следующую модель воронки бизнес-трафика, которая должна научно распределять коэффициенты трафика по различным сценариям.Это соотношение анализируется, а не дается по голове. Вполне возможно, что весь трафик большой акции Али не может уйти в процесс оплаты в конце, а большая часть трафика закончится в предыдущем процессе, если это так, то результаты вашего стресс-теста неточны.

阿里大促业务流量漏斗图

Чтобы лучше имитировать реальные сценарии использования пользователей и онлайн-данные, очень распространенным методом является сброс онлайн-данных для стресс-тестирования.Есть две простые идеи:

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

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

  1. Убедитесь, что в данные добавлены маркеры стресса
  2. Данные учетной записи должны заранее выполнить подготовительную работу, такую ​​как аутентификация входа.
  3. Данные должны максимально соответствовать реальным данным, таким как цены, фотографии и т.д.
  4. Есть ли у данных особые требования, такие как разные модели оборудования
  5. Старайтесь поддерживать тот же уровень попаданий в кеш, что и в сети.
  6. Особые требования к другим характеристикам бизнеса...

Процесс измерения давления

Основная идея та же, что и в обеспечении качества, начиная с мелкозернистой и медленно интегрируясь во всю большую систему, например单测->接口测试->集成测试, стресс-тест также начинается с простого пошагового подхода к полным ресурсам и полным ссылкам. Вы можете ознакомиться с процессом:单接口单机->单接口1/4资源->场景化1/4资源->全量资源压测->拨测.

Единый автономный интерфейс

Разверните один сервис на одноядерном (или с меньшим количеством физических ресурсов) компьютере, исключая внешние каналы, сети и другие факторы, чтобы получить одноядерную производительность своего собственного сервиса (единица запросов в секунду на ядро), а затем объедините тест под давлением на основе этого индекса производительности одного ядра Целевое значение расширяется. Кроме того, поскольку это одиночный компьютер с одним интерфейсом, который находится под давлением, запросы других интерфейсов не влияют на него, а восходящий и нисходящий потоки не вызовут узких мест при наличии достаточных ресурсов, поэтому реальная производительность услуги может быть гарантирована. .

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

Единый интерфейс 1/4 ресурса

В автономном стресс-тесте с одним интерфейсом сервер завершил некоторые оптимизации производительности.Затем он может пройти стресс-тест с одним портом на 1/4 ресурса.Это необходимо для проверки данных производительности одного ядра, полученных в одноядерном тесте. автономный стресс-тест порта. Будет ли линейно увеличиваться производительность при использовании ресурса /4, есть ли потеря производительности и источник потери локализации.

Ресурс сцены 1/4

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

Полная ссылка на полный ресурс

После того, как все ресурсы будут на месте, вопрос о том, допустимо ли предполагаемое онлайн-давление, также является последним шагом процесса тестирования давления в интрасети.

наберите тест

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

Стратегия стресс-тестирования

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

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

Кроме того, что нужно обращать внимание на упомянутые выше показатели, нужно также обратить внимание на то, равномерен ли трафик в каждом машинном зале (если он неравномерен, проверьте, работает ли балансировка нагрузки).


Закрытие стресс-теста

Окончание процесса генерации стресса не означает окончания стресс-теста.

очистка данных

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

Общая проблема

Вот некоторые типичные проблемы, с которыми вы можете столкнуться:

  1. Есть избыточные заголовки http, что приводит к дополнительному потреблению полосы пропускания.
  2. spin_lock сильно влияет на RT, как оптимизировать блокировку
  3. Настройка количества рабочих процессов nginx повышает производительность.
  4. Недопустимое количество длинных ссылок
  5. Объекты плохо повторно используются в реализации кода.
  6. частота попаданий в кеш не соответствует ожидаемой
  7. Избыточность в бизнес-процессах
  8. Отсутствует слой кеша
  9. Код ответа или код ошибки могут оставаться стандартизированными.
  10. Недостаточно ресурсов нижестоящих сервисов (другой мониторинг, хранилище)
  11. Внутренняя система ограничивает ток измерения давления, и необходимо изменить конфигурацию или договориться, чтобы снять ограничение

...


Резюме стресс-теста

Приведите полный пример процесса измерения давления:

  1. Определите цель этого стресс-теста и оцените значение соответствия каждого индикатора
  2. В соответствии с приоритетом и сценарием использования интерфейса службы определите интерфейс, который необходимо подвергнуть стресс-тестированию.
  3. Отсортируйте сервисы по ссылке стресс-теста, чтобы подтвердить целостность ссылки
  4. Выполнить преобразование измерения давления для сервиса, предназначенного для звена измерения давления.
  5. Подготовьте данные стресс-теста и подтвердите стратегию стресс-теста
  6. Запустите стресс-тест, отслеживайте различные показатели и проверяйте эффект оптимизации производительности для нескольких раундов стресс-тестирования.
  7. Очистка среды измерения давления
  8. Вывод итогового отчета о проверке давления

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


использованная литература

Why Averages Suck and Percentiles are Great

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

Общая идея стресс-теста всей ссылки

Эксклюзивный секрет | Как Али проводит полноценный стресс-тест на Double 11?

Испытайте момент пика трафика: двойное десятилетие технического сотрудника Ali

What is Upstream and Downstream in Software Development?

Шесть лет «Двойного 11», пережитого техническим специалистом Али: технологии меняют Али

Эта статья публикуется блогерами и другими операционными платформами.OpenWriteвыпуск


  1. woohoo.guru99.com/performance… ↩︎