Как спокойно провести тестирование производительности в условиях крупного торгового мероприятия

Автор: Чжао Цзяцзя

Ежегодно во время потребительских карнавалов Double Eleven, рождественских распродаж и весенних фестивалей мы видим, что в часы пик в залах прямых трансляций брендов одновременно размещают сообщения, захватывают товары и красные конверты в Интернете. фирменные магазины, там же есть Консультации, дополнительные покупки, заказы, оплаты и т.д. такого же масштаба. Растущее число пользователей, все более частое взаимодействие и сценарии нерегулярного импульсного трафика создают серьезные проблемы для сервисов приложений.

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

С какими трудностями мы столкнемся при подготовке к стресс-тестированию?

(1) Трудно предсказать масштаб трафика.

Службы приложений веб-сайтов электронной коммерции обычно состоят из двух частей: первая - рекомендации и поиск, которые в основном рекомендуют пользователям различные продукты и обеспечивают удобство для пользователей при выборе продуктов ; вторая - оплата транзакций, то есть дополнительные покупки, заказ, оплата и другие ссылки. Модели трафика двух частей совершенно разные.Трафик рекомендательной и поисковой части показывает медленно возрастающую кривую.Для сервисов давление трафика постепенно увеличивается, в то время как трафик транзакционной части резко возрастает, особенно во время Double Eleven. торговое мероприятие., давление мгновенно возрастет до пика, и не будет времени для колебаний в отношении производства, исследований и услуг. Это также важная причина, почему к продуктам электронной коммерции предъявляются более высокие требования к удобству использования, чем к другим интернет-продуктам.

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

(2) Стресс-тестирование различных сценариев

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

Как выбрать решение для стресс-тестирования, которое лучше всего соответствует характеристикам вашего бизнеса

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

Создавайте сценарии стресс-тестирования и модели стресса.

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

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

Наблюдаемость во время стресс-тестирования

После завершения вышеуказанных приготовлений можно начинать формальный стресс-тест. В этом процессе мы фокусируемся на трех основных показателях: частоте успешных запросов, времени ответа на запрос (RT) и пропускной способности системы (QPS). Вероятность успеха запроса зависит не только от глобального уровня успеха запроса, но также от уровня успеха некоторых основных API, чтобы избежать ситуации, когда общий уровень успеха достигает стандарта, а уровень успеха основного API недостаточен. Для времени ответа на запрос необходимо обратить внимание на то, соответствуют ли ожиданиям некоторые ключевые квантильные показатели, такие как 99, 95, 90, 80.... Среднее время ответа не имеет большого эталонного значения, поскольку стресс-тест требует чтобы обеспечить опыт большинства пользователей.Когда степень дисперсии неясна, среднее значение может легко привести к неправильной оценке. Пропускная способность системы является показателем того, какой объем доступа может выдержать система, и является обязательным стандартом для стресс-тестирования.

Когда три основных показателя достигают критической точки, можно считать, что в службе возникло узкое место в производительности, и стресс-тест можно остановить и подготовиться к обнаружению/анализу проблем с производительностью. Если три основных показателя очень стабильны на протяжении всего процесса стресс-тестирования, это означает, что услуга соответствует ожиданиям по доступности. Но мы также можем постоянно увеличивать значение давления в соотношении 10-20%, проводить пиковое испытание давлением «на прикосновение» для обслуживания и наблюдать, каково предельное значение обслуживания, чтобы действительно получить прибыль.

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

Видно, что есть много вещей, которые необходимо подготовить заранее в течение всего процесса стресс-тестирования.Чтобы помочь предприятиям и разработчикам проводить стресс-тестирование производительности более эффективно и удобно, Alibaba Cloud запустила Performance Testing PTS. Тест производительности PTS проверен годами деятельности Double Eleven. Благодаря масштабируемости он может легко инициировать миллионы одновременных трафиков, устраняя затраты на оборудование и рабочую силу; благодаря инициированию глобального регионального трафика и точному контролю моделей трафика можно добиться реального моделирования. источник трафика. Сложные взаимодействия пользователей можно легко смоделировать с помощью таких функций, как оркестровка сцен без кодирования и запись трафика. После стресс-тестирования богатые функции мониторинга и диагностики проблем помогают бизнесу быстро находить узкие места и повышать производительность и стабильность системы.

Косметический бренд с более чем 10 миллионами поклонников в Интернете в прошлом сталкивался с огромным давлением по обеспечению стабильности системы во время крупных продаж. Сторонние интерфейсы и некоторые медленные SQL-коды могут вызвать серьезные онлайн-сбои; системные ресурсы во время крупных продаж не соответствуют ежедневным Ресурсы сильно различаются, требуя частого расширения и сокращения; кроме того, стресс-тестирование и работа по оценке мощности системы проводятся очень часто и требуют нормализованного механизма для их поддержки; чтобы решить эти проблемы и поддержать быстрое развитие бизнеса, клиенты сделали все возможное использование PTS для оценки возможностей отдельной машины и общей мощности системы, а также заранее прогнозировать объем бизнеса, который может выполнять одна машина, и общий объем бизнеса, который она может выполнять, чтобы можно было сделать разумное планирование ресурсов и прогнозирование затрат на будущее. потребности в продвижении бизнеса.

Банковское учреждение проводит прямую трансляцию через мобильное приложение. Оно должно одновременно поддерживать миллионы пользователей онлайн и часто взаимодействовать с ними, например текстовыми сообщениями, лайками и красными конвертами. Оно предъявляет чрезвычайно высокие требования к производительности системы, стабильности, реагирование на чрезвычайные ситуации и т. д. Клиенты используют возможности PTS по записи трафика и многопротокольному стресс-тестированию для точного моделирования онлайн-операций пользователей мобильных телефонов. Его мощные возможности регулировки давления и скорости могут моделировать источники и модели трафика конечного пользователя. Это помогает клиентам точно планировать мощность системы, репетировать возможные аварийные ситуации и обеспечивать стабильность всей системы. В то же время PTS значительно сокращает время подготовки механизма стресс-тестирования, а время запуска механизма для моделирования миллиона пользователей онлайн сокращается до 40 секунд; в процессе стресс-тестирования он обеспечивает различные стресс-тесты. методы мониторинга трафика, помогающие обнаружить проблемы; стресс-тест заканчивается. После этого поток измерения давления немедленно останавливается, и предоставляются многомерные и многоугольные отчеты об измерении давления, а также инструменты диагностики проблем, что значительно повышает эффективность измерения давления. Компания PTS помогла клиенту успешно завершить церемонию прямой трансляции: количество просмотров в тот вечер превысило 2 миллиона, а количество лайков превысило 17 миллионов.

Автор известного проекта с открытым исходным кодом потерял работу из-за мании - «Искать деньги в Интернете» No Star, No Fix 2023 Выпущена десятка лучших в мире инженерных достижений: ChatGPT, Hongmeng Operating System, China Space Station и другие избранные ByteDance были «запрещены» OpenAI Google анонсирует самое популярное расширение Chrome в 2023 году Академик Ни Гуаннань: Надеюсь, отечественный SSD заменит импортный HDD для разблокировки мобильного телефона Xiaomi BL? Сначала задайте вопрос на собеседовании с Java-программистом. Компания Arm уволила более 70 китайских инженеров и запланировала реорганизовать свой китайский бизнес по разработке программного обеспечения. OpenKylin 2.0 раскрывает | UKUI 4.10 дизайн с двойным ромбом, красивый и качественный! Выпущена версия Manjaro 23.1 под кодовым названием «Вулкан».
{{o.name}}
{{m.name}}

Supongo que te gusta

Origin my.oschina.net/u/3874284/blog/10344490
Recomendado
Clasificación