17 июня 2020

Когда и как мы проводим нагрузочное тестирование

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

Мы хотим поделиться своим опытом и рассказать, как исследуем производительность, выявляем и устраняем «узкие» места, определяем уровень отказоустойчивости системы.

Этапы проведения

Нагрузочное тестирование входит в аудит производительности системы. Сначала мы определяем цели, формулируем требуемые показатели нагрузки, выясняем проблемы. Это исследование, во время которого взаимодействуют все участники команды  — разработчик, архитектор, DevOps.

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

отчет.png

Пример отчета

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

Работы проводятся на основании выявленных проблем. Это, например, оптимизация кода, устранение «узких» мест. Список конкретных задач зависит от результатов тестирования. Также мы проводим тесты, чтобы определить эффективность этих изменений.

Разберем ситуации, когда IT-системе требуется нагрузочное тестирование.

Наплыв большого количества пользователей

people.jpg

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

Что вы получаете:

  • Определение возможностей и лимитов допустимой нагрузки

  • Выявление заранее проблемных мест

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

Спасение IT-системы в кризис

thisisengineering-raeng.jpg

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

Что вы получаете:

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

  • Сохранение пользовательского трафика

  • Снижение репутационного ущерба

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

Мы оперативно отреагировали на инцидент  — в течение двух дней оптимизировали API-запросы и восстановили работу приложения. В итоге производительность повысилась в 15 раз.

Беспрерывная оптимизация

rinson-chory.jpg

Бесперебойная работа не поможет продукту, если забыть о регулярных процедурах. Это может быть оптимизация кода, оптимизация работы базы данных (запросы, индексирование и другое), реже  — переход на более актуальные технологии или версии, внедрение таких практик, как перенос статики на CDN серверы, использование распределенной инфраструктуры и многое другое.

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

Что вы получаете: 

  • Улучшение показателей ресурса

  • Готовность к нагрузкам

  • Удержание пользователей

  • Преимущество перед конкурентами

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

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

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

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

Лайфхаки для бесперебойной работы

На основе нашего опыта мы составили рекомендации для эффективной работы IT-системы:

  1. Проводите нагрузочное тестирование  — регулярное или перед ожидаемым ростом трафика. Это поможет определить критичные точки и составить план оптимизации.

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

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

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

Понравилась статья?
Подпишитесь на рассылку SimbirSoft! Пришлём письма о лайфхаках в разработке, поделимся опытом управления командами и компанией, а также расскажем о новых ивентах SimbirSoft.

Другие статьи

Вебинар “Анализировать нельзя разрабатывать. Лекарство от хаоса в разработке”
05 апреля 2024
SimbirSoft и Синара Лаб – партнеры по внедрению коробочного решения «Цифровой рубль»
04 апреля 2024
Вебинар «Красиво vs Качественно. Какие метрики вашего бизнеса зависят от Frontend-разработки?»
12 марта 2024
Написать нам
Оставьте контакты, чтобы обсудить проект и условия
сотрудничества, или позвоните: 8 800 200-99-24
Прикрепить файл до 10Мб
Файл выбран
Можно прикрепить один файл в формате: txt, doc, docx, odt, xls, xlsx, pdf, jpg, jpeg, png.

Размер файла до 10 Мб.
Оставьте свои контакты
SimbirSoft регулярно расширяет штат сотрудников.
Отправьте контакты, чтобы обсудить условия сотрудничества.
Прикрепить резюме, до 10 Мб
Файл выбран
Можно прикрепить один файл в формате: txt, doc, docx, odt, xls, xlsx, pdf, jpg, jpeg, png.

Размер файла до 10 Мб.
Написать нам
Расскажите, какие задачи сейчас на вашем проекте.
Проконсультируем и предложим подходящих специалистов, а также сориентируем по ставкам на аутстаф.
Направление
Количество специалистов
Middle
TeamLead
Senior
TechLead
Прикрепить файл до 10Мб
Файл выбран
Можно прикрепить один файл в формате: txt, doc, docx, odt, xls, xlsx, pdf, jpg, jpeg, png.

Размер файла до 10 Мб.
Экспресс-консультация
Заполните все поля формы.
Эксперт свяжется с вами в течение рабочего дня.
Тематика
Прикрепить файл до 10Мб
Файл выбран
Можно прикрепить один файл в формате: txt, doc, docx, odt, xls, xlsx, pdf, jpg, jpeg, png.

Размер файла до 10 Мб.
Порекомендуйте друга — получите вознаграждение!
  • Middle Fullstack QA Engineer (Mobile)
  • Python-paзработчик
  • Java-разработчик
  • Angular-разработчик
  • PHP-разработчик
  • Системный аналитик
  • QA Engineer Fullstack (Python)
  • C#-разработчик
  • Инженер по нагрузочному тестированию
  • Golang-разработчик
  • DevOps-инженер
  • 1С-аналитик
  • 1C QA Engineer
  • Юрист
  • Разработчик на C++
  • UI/UX дизайнер
  • 1С-разработчик
  • DWH-разработчик
  • Менеджер по сопровождению бизнес-процессов
  • SDET (Python)
  • Маркетолог
  • Архитектор C#
  • Менеджер по продажам IT SaaS
  • QA Engineer Fullstack (Java/Kotlin)
  • C# /.NET-разработчик
  • Бизнес-аналитик
  • Аналитик DWH
  • Team Lead Java
  • Менеджер проектов 1С
  • Руководитель отдела Backend
  • Руководитель отдела Frontend
  • SDET (Java)
  • Менеджер по продажам IT продуктов на иностранное направление
  • Менеджер по продажам IT продуктов
  • Team Lead Python
  • SAP-аналитик
  • Middle Golang разработчик (Teamlead)
  • SDET (JavaScript)
  • Fullstack-аналитик
  • SDET Python (мобильные приложения)
Прикрепить резюме, до 10Мб
Файл выбран
Можно прикрепить один файл в формате: txt, doc, docx, odt, xls, xlsx, pdf, jpg, jpeg, png.

Размер файла до 10 Мб.