[Высокая производительность, Тестирование IT-систем, Анализ и проектирование систем, Разработка на Raspberry Pi] История про Гену, Чебурашку и тестирование производительности реактивного приложения, работающего на Raspberry Pi

Автор Сообщение
news_bot ®

Стаж: 6 лет 3 месяца
Сообщений: 27286

Создавать темы news_bot ® написал(а)
24-Апр-2021 12:31

(Проект и персонажи вымышлены, любые совпадения случайны)- Чебуршка, нам нужно начать поставки нашей новой системы по мониторингу и управлению апельсиновыми плантациями через три месяца, а данных, какую максимальную нагрузку сможет поддерживать наша система - нет! Да и в стабильности работы нашей системы продолжительное время мы не уверены...- Геннадий, давай я тебе напомню, что у нас не простой веб сервис, который можно нагрузить запросами при помощи JMeter и получить показатель в секунду. У нас реактивная система по обработке потока данных и принятию решений в реальном времени, работающая на Raspberry Pi, которая должна решать задачи по мониторингу, управлению и увеличению эффективности апельсиновой плантации с минимальным энергопотреблением. Давай я тебе напомню архитектуру нашего приложения:(Чебурашка быстро нарисовал на доске следующую диаграмму для Гены)
Архитектура системы управления апельсиновой плантацией- Ты смеешься надо мной, Чебурашка?! Я же на английском ничего не понимаю!- Управляете интернациональной корпорацией, Геннадий... Пора бы уже... Давай ближе к теме. У нас имеется система по контролю и мониторингу апельсиновой плантации, которая должна располагаться на территории данной плантации, работать без подключения к электрической сети, на электроэнергии, получаемой от солнечных панелей. Система в режиме реального времени должна обрабатывать сигналы с датчиков (например влажность почвы конкретного дерева), и автоматически отправлять команды контроллерам (к примеру, системы полива этого апельсинового дерева). Также система позволяет подключаться к ней с внешнего устройства (ноутбук, планшет, смартфон), с возможностью проверки общего состояния, изменения конфигурации и анализа данных.- Чебурашка, я тебе вопрос о производительности задал! Я не просил пересказывать отрывок из презентации для инвесторов... Давай ближе к теме!- К этому я и подвожу. Исходя из специфики и отсутствия четких требований по производительности со стороны заказчика, производительность нашей системы можно будет охарактеризовать ответами на следующие вопросы:
  • Какой максимальный размер апельсиновой плантации, управление которой наша система поддерживает?
  • Как продолжительно система может работать на плантации данного размера?
  • Как система ведет себя в критичных условиях (пиковая нагрузка, нехватка места в хранилище, отключение от источника питания) и как успешно восстанавливается?
Прежде чем перейти к решению данных вопросов, давайте разберем виды тестов производительности:Throughput
Тесты скорости системыLoad
Нагрузочные тестыPeak/Stress/Endurance
Стресс тестыGoal
ЦельHow much data per second can the system handle? 
(Пропускная способность системы)How the system behaves under real-life load during the time? 
(Как система ведет себя при продолжительной нормальной нагрузке?)What is the limit for the system?
(Как ведет себя система на пределе и где этот предел?)Issues to find
Помогает найти проблемыBottlenecks
(Узкие места)Memory leaks
(Утечки памяти)Concurrency issues
(Проблемы конкурентной работы с данными)High CPU / RAM / Disk / Network of individual component
(Избыточное потребление ресурсов)Hardware issues, for example overheating
(Технические проблемы, например перегрев)Data corruption
(Повреждение данных)Hardware corruption
(Физические повреждения системы)Recovery issues
(Проблемы восстановления после сбоев)- Вот, Чебурашка, можешь ведь изъясняться и на русском, когда захочешь!- Наша главная сложность, что мы не знаем в каких условиях будет находиться наша система у заказчика, также мы не знаем количественные и качественные показатели данных, которые будет потреблять система. И у нас нет реальной апельсиновой плантации рядом с офисом, чтобы проверить это. Мы можем эмулировать данные, но это может оказаться далеко от правды.- Ты же умный парень, Чебурашка! Я помню, что когда ты задаешь мне вопрос, у тебя, как правило, уже есть варианты ответа. - Верно, я предлагаю установить прототип нашей системы на плантацию к заказчику и оставить ее работать в режиме записи данных с сенсоров и использования системных ресурсов на неделю. На основе этих данных мы сможем сконфигурировать эмуляторы и запустить тесты.- Отлично, так и сделаем! Я согласую это с заказчиками прямо сегодня!- Геннадий, давай я тебе расскажу об отдельном приложении, которое я разработал специально для проведения всех названных выше типов тестов производительности. Это приложение отвечает за запуск сценариев тестов, управление эмуляторами, сбор данных потребления ресурсов (CPU, Memory, Disk I/O, DIsk space usage, Network I/O) всей системой, так и отдельными компонентами, количество ошибок в логах, пропускную способность системы и целостность данных.- Почему ты не использовал какое-либо готовое решение? Я слышал про такие инструменты для нагрузочного тестирования, как Gatling или Tank от Яндекса?- Хороший вопрос. Я изучил возможности данных инструментов и нашел их недостаточно гибкими для наших задач. Было принято решение разработать систему с нуля. Коротко опишу данную систему:
Архитектура системы тестов производительностиПриложение тестов производительности поддерживает как тестирование всего приложения, включая UI (который, в нашем случае является толстым клиентом и выполняет определенное количество интенсивных операций с данными), так и отдельных частей и компонентов.Через пару месяцев...- Добрый день, Чебурашка! Какие результаты нагрузочных тестов?- Добрый день, Геннадий! При помощи нашей системы тестов производительности мы смогли обнаружить и исправить множество дефектов и узких мест, также мы внедрили нагрузочные тесты в CI/CD Pipeline и мы запускаем их регулярно.Мы можем сказать, что:
  • Один экземпляр системы способен работать на плантации площадью до 5 гектаров с количеством деревьев до 1250 штук (Далее: "стандартные условия").
  • Система с хранилищем в 128 Гб в стандартных условиях способна непрерывно работать более 1 месяца.
  • При экстренном отключении, данные остаются на энергонезависимом хранилище. Система автоматически запуститься и продолжит работу при восстановлении питания.
- Приятно слышать, Чебурашка! Будем планировать поставку. Надеюсь, ты не собрался в отпуск после проделанной работы. Ты ведь и так там был не давно, в позапрошлом году. А нам теперь нужно будет срочно спроектировать следующую версию системы, которая сможет контролировать работу сборщиков урожая...- Обсудим. Но это уже другая история...
===========
Источник:
habr.com
===========

Похожие новости: Теги для поиска: #_vysokaja_proizvoditelnost (Высокая производительность), #_testirovanie_itsistem (Тестирование IT-систем), #_analiz_i_proektirovanie_sistem (Анализ и проектирование систем), #_razrabotka_na_raspberry_pi (Разработка на Raspberry Pi), #_performance_testing, #_performance_tests, #_reactive_systems, #_vysokaja_proizvoditelnost (
Высокая производительность
)
, #_testirovanie_itsistem (
Тестирование IT-систем
)
, #_analiz_i_proektirovanie_sistem (
Анализ и проектирование систем
)
, #_razrabotka_na_raspberry_pi (
Разработка на Raspberry Pi
)
Профиль  ЛС 
Показать сообщения:     

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

Текущее время: 20-Май 23:41
Часовой пояс: UTC + 5