Одноклассник из Планеты задал вопрос о тестировании производительности, он показался мне довольно интересным, поэтому поделился им со всеми и рассказал о своих идеях анализа и практическом опыте.
Предыстория проблемы такова:Новая версия системы 1.0 еще не доступна, и ее необходимо протестировать. Как действовать? Как оценивается модель потока? Как провести стресс-тестирование с использованием кэша? Как настроить коэффициент потока в сценарии стресс-теста? Как провести онлайн-планирование оценки потенциала?
1. Модель трафика
Системы, не подключенные к сети, не могут получить более точную модель трафика, поскольку у них нет реальных бизнес-данных пользователей. Однако, если модели трафика нет, показатели производительности системы, полученные в результате испытания под давлением, не имеют большого эталонного значения. Поэтому модель трафика все равно необходимо оценить. Как ее оценить?
Во-первых, посмотрите на план запуска системы, например, будет ли она запущена полностью или в оттенках серого после выхода в Интернет.
Если это полный толчок, вы можете сослаться на общее количество пользователей других предприятий компании и получить приблизительное значение, основанное на тенденции трафика онлайн-системы. Затем, в соответствии с типом бизнеса системы и пиковым периодом бизнеса, оцененным стороной продукта, максимальное значение QPS дополнительно получается в соответствии с принципом 80/20. Наконец, модель трафика получается в соответствии с бизнес-связями и отношениями вызовов системы.
Если это оттенки серого, трафик первого оттенка серого будет оцениваться первым в соответствии со стратегией оттенков серого. Например, если у зарегистрированного пользователя есть 1 миллион Вт, сначала оттенки серого будут 10%, а затем оттенки серого будут 20% после того, как вы увидите, что проблем нет в течение недели. В этом случае начальное значение модели трафика рассчитывается как 10 Вт, а затем преобразуется и рассчитывается одно за другим в соответствии с отношениями деловых вызовов.
PS: Конкретные методы оценки и случаи моделей трафика можно найти в рекомендуемой литературе в конце статьи.
2. Кэш-сцена
Это очень распространенный сценарий стресс-тестирования, включающий кэширование, и решение этой проблемы также очень простое.
Предварительно нагрейте данные, которые необходимо кэшировать в кеш, с помощью тестирования нагрузки на небольшой трафик или пакетной обработки.。Этот шагпроизводительностьне ведет себя как настоящийпроизводительность Запись результата,Основная цель — поместить кэшированные данные в кеш.,Убедитесь в подлинности тестовой сцены.
Некоторые студенты обеспокоены тем, что если они сначала пройдут разминку, а затем нагрузочный тест, то результаты последующих тестов производительности будут больше отличаться от производительности доступа пользователей после выхода системы в онлайн. На самом деле, об этом не стоит беспокоиться. Прежде чем новая система выйдет в онлайн, необходимо подготовить и прогреть базовые данные и кэшированные данные. Это также способ быстрого улучшения производительности системы и удобства работы пользователей.
3. Коэффициент посещаемости сцены
Давайте сначала объясним соотношение потоков. Например: бизнес-приложение, соответствующее бизнесу заказа, является интерфейсом заказа, и в это приложение интегрированы функциональные модули, связанные с заказом, такие как список заказов, детали заказа, создание заказа и оплата заказа.
С уровня сервиса QPS запросов, направляемых от шлюза к сервису заказ-интерфейс, является фиксированной величиной, но QPS разных функциональных модулей (интерфейсов) в один и тот же период времени различны, и их производительность также будет разной. Для получения производительности уровня обслуживания приложений необходимо провести стресс-тестирование по смешанному сценарию.
Здесь коэффициент QPS интерфейса, соответствующий различным функциональным модулям в интерфейсе заказа службы заказа, представляет собой так называемый коэффициент трафика.
Давайте поговорим о стратегии соотношения трафика в этом сценарии. Идея на самом деле очень проста: просто получить прибыль.
При разных соотношениях потоков производительность системы будет разной. Вы можете комбинировать разные соотношения потоков и проверять несколько групп, чтобы получить разные результаты производительности.
Поскольку система еще не подключена к сети, необходимо оставить определенный объем резервного пространства для системы, когда она находится в сети. Используйте наихудший набор результатов теста производительности, полученный вышеуказанным методом, в качестве эталона, если данные теста производительности этого набора соответствуют ожиданиям.
После запуска системы новые модели трафика и коэффициенты трафика получаются на основе фактических данных бизнес- и технического мониторинга и быстро настраиваются, оптимизируются и проверяются с помощью стресс-тестирования.
4. Планирование оценки потенциала
Многие студенты-тестировщики имеют определенные непонимания относительно оценки и планирования мощности. На самом деле оценка мощности и планирование мощности — это две разные вещи.
В реальном сценарии тестирования производительности этапами оценки и планирования мощности являются: оценка мощности, проверка стресс-теста, онлайн-мониторинг, корректировка и оптимизация.。Последний шаг,Это так называемое онлайн-планирование мощности.
Так называемая оценка мощности представляет собой приблизительную стоимость различных сервисов ABCD и соответствующих приложений и промежуточного программного обеспечения (Redis/MQ).
Проверьте производительность отдельной машины или небольшого кластера с помощью автономной среды тестирования производительности, чтобы получить приблизительный результат, и используйте наихудший набор результатов производительности в качестве онлайн-теста.
Кроме того, при запуске новой системы стабильность гарантируется за счет резервирования ресурсов. После того, как система будет подключена к сети, используйте вновь полученную модель трафика и коэффициент трафика для быстрой настройки, оптимизации и испытания под давлением для проверки, а затем дальнейшую настройку уровня воды для каждого бизнес-приложения и соответствующего распределения ресурсов. Только таким образом можно завершить планирование мощности.
Планирование мощности — это непрерывный и постепенный процесс, а не разовая сделка.