Игорь Трубин
Можно ли определить область нормального функционирования экспериментально?
В своих последних работах, посвящённых концепции области нормального функционирования (ОНФ, Area of Normal Functioning — ANF), я уделял основное внимание статистическим методам определения и отслеживания границ нормального поведения систем.
Однако, возвращаясь к своим ранним исследованиям в области промышленной робототехники, я обратил внимание на другой подход: границы ОНФ можно определять и экспериментально.
Сама по себе эта идея не является новой инженерной практикой. Инженеры десятилетиями испытывают технические системы, определяя пределы их работоспособности. Новым здесь может быть рассмотрение таких экспериментов как систематического способа построения и поддержания области нормального функционирования.
Более того, объединение экспериментальных испытаний со статистическим мониторингом открывает возможность создания моделей ОНФ, непрерывно изменяющихся вместе с самой системой.
1. Исходная идея: экспериментальное определение ОНФ в промышленной робототехнике
В своих ранних исследованиях промышленных роботов я изучал, каким образом роботизированный захват может надёжно захватывать объект, даже если его фактическое положение отличается от ожидаемого.
Традиционный подход предполагал, что для успешного захватывания объект должен быть достаточно точно позиционирован.
Но что произойдёт, если объект смещён?
Я исследовал этот вопрос экспериментально, используя реальный промышленный робот.
Начиная с идеального положения объекта, я вручную вводил отклонения его положения и проверял возможность успешного захватывания. Постепенно увеличивая эти отклонения в разных направлениях, я мог определить область, в пределах которой операция захватывания оставалась успешной.
За определёнными границами захватывание становилось невозможным.
Полученная область представляла собой то, что сегодня я называю областью нормального функционирования системы взаимодействия робота с объектом.
Важно отметить, что эти границы были получены не путём статистического анализа исторических данных о работе системы. Они определялись в ходе контролируемых экспериментов.
Такой подход позволял учитывать несколько измерений, включая линейные смещения, угловую ориентацию объекта и другие существенные условия.
Это был один из моих первых примеров построения ОНФ непосредственно на основании экспериментально установленных возможностей системы.
2. Тот же принцип применим к компьютерным системам
Теперь рассмотрим современное компьютерное приложение.
Его производительность зависит от множества факторов:
Интенсивности рабочей нагрузки и частоты поступления транзакций.
Количества одновременно работающих пользователей.
Ресурсов процессора, оперативной памяти, дисковой подсистемы и сети.
Конфигурации приложения и инфраструктуры.
Требований к времени отклика и пропускной способности.
Для определённой конфигурации системы существует диапазон нагрузок, в пределах которого приложение функционирует с приемлемыми показателями производительности.
По мере увеличения нагрузки система может перестать удовлетворять требованиям ко времени отклика, начать выдавать недопустимое количество ошибок или потерять устойчивость.
Именно это исследуется при традиционном нагрузочном и стрессовом тестировании.
Нагрузочное тестирование позволяет установить диапазон рабочих нагрузок, в котором приложение удовлетворяет заданным требованиям. Стрессовое тестирование помогает исследовать предельные режимы за пределами этого диапазона и выявить возможные отказы.
Почему бы не рассматривать такие испытания как процесс построения области нормального функционирования?
Предположим, что для приложения установлено требование: время отклика на заданном процентиле должно быть менее 500 миллисекунд.
Серия нагрузочных испытаний может показать, что это требование устойчиво выполняется при интенсивности от 100 до 1200 транзакций в секунду.
За пределами этого диапазона производительность становится неприемлемой при рассматриваемых условиях испытаний.
Тогда экспериментально установленную область допустимой нагрузки можно представить следующим образом:
ANF = [100, 1200] транзакций/секунду
Разумеется, это условный пример. Применимость полученного интервала зависит от конфигурации испытаний, состава рабочей нагрузки, критериев производительности и погрешностей измерений.
Важно понимать, что в данном примере ОНФ рассматривается только в одном измерении — интенсивности нагрузки.
Соответствующая область допустимых значений времени отклика, использования ресурсов и других характеристик может иметь совсем другую форму.
В общем случае ОНФ правильнее представлять как многомерную область, а не как один интервал.
3. Перестроение ОНФ после новых версий приложений и изменений инфраструктуры
Современные ИТ-организации регулярно проводят тестирование производительности после существенных изменений, таких как:
Выпуск новых версий приложений.
Модернизация аппаратного обеспечения.
Миграция инфраструктуры.
Изменение конфигурации баз данных.
Изменение размеров облачных вычислительных ресурсов (instance resizing).
Существенные изменения архитектуры системы.
Обычно такие испытания отвечают на знакомые вопросы:
Улучшилась или ухудшилась производительность? Способно ли приложение обслуживать ожидаемую нагрузку? Не привели ли изменения к регрессии производительности?
Но те же результаты могут помочь ответить на более общий вопрос:
Как изменилась область нормального функционирования системы?
Предположим, что после обновления приложения его устойчивая пропускная способность увеличилась с 1200 до 1600 транзакций в секунду при сохранении требуемого времени отклика.
Традиционно мы назовём это улучшением производительности.
С точки зрения ОНФ это можно описать как расширение области нормального функционирования.
И наоборот, неудачная новая версия приложения может снизить устойчивую пропускную способность с 1200 до 900 транзакций в секунду.
Это не просто регрессия производительности. Это сужение ОНФ.
Подобные изменения можно отслеживать при переходе между версиями приложений, поколениями оборудования или конфигурациями инфраструктуры.
Полученная история будет характеризовать эволюцию эксплуатационных возможностей системы во времени.
4. Что происходит между испытаниями производительности?
Экспериментальное определение ОНФ имеет очевидную ценность, но связано с практическим ограничением.
Мы не можем непрерывно подвергать каждую производственную систему нагрузке, приближающейся к пределам её работоспособности.
Даже при регулярном выполнении нагрузочных испытаний поведение системы между ними может изменяться.
Может меняться состав рабочей нагрузки. Возможно постепенное ухудшение характеристик инфраструктуры. Может усиливаться конкуренция за вычислительные ресурсы или проявляться сезонность спроса.
Именно здесь особое значение приобретает разработанная мной система SETDS (Statistical Exception and Trend Detection System) — система статистического обнаружения исключений и трендов.
SETDS использует статистический анализ для выявления исключений, тенденций и изменений в поведении системы.
Вместо того чтобы экспериментально доводить систему до предельных состояний, SETDS наблюдает за её фактическим поведением и оценивает происходящие изменения.
Для измеряемой характеристики производительности X статистически определяемая ОНФ может быть представлена интервалом с изменяющимися во времени границами:
ANF_X(t) = [L_X(t), U_X(t)]
Здесь L и U обозначают нижнюю и верхнюю границы области нормального функционирования, оцениваемые на основании исторических наблюдений.
Эти границы могут изменяться по мере эволюции системы.
Основная идея заключается в объединении двух взаимодополняющих подходов.
Экспериментальное построение ОНФ. Определение или подтверждение допустимых эксплуатационных границ посредством контролируемого тестирования производительности.
Статистический мониторинг ОНФ. Применение SETDS для оценки нормальных режимов работы, обнаружения исключений, выявления изменений и прогнозирования эволюции этих режимов между экспериментальными испытаниями.
При этом необходимо сохранять одно принципиально важное различие:
Статистически нормальная область функционирования необязательно совпадает с полной областью допустимой работы системы.
Например, приложение может обычно работать при загрузке процессора 30–50%, тогда как экспериментально подтверждённая производительность позволяет использовать процессор значительно интенсивнее без нарушения установленных требований.
Сравнение этих двух областей помогает выявлять неиспользуемые резервы производительности, возникающие риски и изменения запаса доступной мощности.
5. От периодического тестирования к непрерывному перестроению ОНФ
Существует ещё одна интересная возможность.
В некоторых современных системах автоматизированное тестирование производительности выполняется непрерывно, особенно в рамках процессов разработки программного обеспечения и непрерывной интеграции (Continuous Integration, CI).
Похожий подход мы с коллегами исследовали в нашей работе, представленной на конференции ICPE 2022:
«Change Point Detection for MongoDB Time Series Performance Regression» («Обнаружение точек изменения при регрессии производительности временных рядов MongoDB»).
В этой работе анализировались измерения производительности, полученные в ходе автоматизированных испытаний, инициируемых изменениями в репозитории исходного кода MongoDB.
Мы разработали и исследовали гибридный подход к обнаружению точек изменения, объединявший метод Perfomalist с технологиями машинного обучения.
Цель заключалась в автоматическом обнаружении существенных изменений производительности без необходимости полагаться исключительно на ручной анализ или фиксированные пороговые значения.
В работе была показана точность обнаружения точек изменения на уровне 83%.
В то время мы рассматривали задачу главным образом как обнаружение регрессий производительности.
Но теперь я вижу возможность переосмыслить и развить эту работу в рамках концепции ОНФ.
Каждое автоматизированное испытание производительности добавляет информацию о поведении системы при определённых условиях.
Если испытания охватывают достаточно широкий и контролируемый диапазон нагрузок, их результаты могут использоваться для реконструкции границ ОНФ.
Одновременно методы обнаружения точек изменения позволяют определять моменты, когда ранее построенная модель ОНФ может перестать соответствовать действительности.
Например, такой процесс может выглядеть следующим образом:
Новое изменение исходного кода (commit) инициирует автоматизированное тестирование производительности.
Собираются показатели производительности и сравниваются с историческими результатами.
SETDS или другой метод обнаружения точек изменения выявляет существенное изменение поведения системы.
Выполняется оценка того, затрагивает ли выявленное изменение границы ОНФ.
Если накоплено достаточно экспериментальных данных, модель ОНФ обновляется. В противном случае инициируются дополнительные целевые испытания.
Таким образом, непрерывное тестирование производительности может превратиться из механизма обнаружения регрессий в механизм непрерывного перестроения области нормального функционирования.
При этом единичная регрессия или обнаруженная точка изменения ещё не доказывает существование новой границы ОНФ.
Она лишь свидетельствует о возможном изменении границы и может служить основанием для дополнительной экспериментальной проверки.
Это различие принципиально важно для научной обоснованности предлагаемого подхода.
6. ОНФ как многомерная и эволюционирующая модель
Ещё один вывод из моих исследований в области робототехники заключается в том, что нормальное функционирование системы редко бывает одномерным.
При роботизированном захватывании область успешной работы может зависеть от смещений вдоль нескольких координатных осей, ориентации объекта и условий захватывания.
В компьютерных системах она может зависеть от интенсивности нагрузки, времени отклика, доступных ресурсов, конфигурации приложений и множества других факторов.
В более общем виде ОНФ можно определить следующим образом:
ANF(t) = {x : система удовлетворяет заданным критериям функционирования при условиях x в момент времени t}
Здесь вектор x описывает существенные условия работы и измеряемые характеристики системы.
Экспериментальное тестирование позволяет исследовать отдельные точки этого многомерного пространства и находить границы между допустимым и недопустимым функционированием.
Статистический мониторинг анализирует поведение системы в этом пространстве во времени.
Объединение двух подходов позволяет исследовать не только отклонения отдельных показателей от нормы, но и более сложные явления:
Расширяется или сужается область нормального функционирования.
Перемещается ли её центр.
Изменяется ли форма области.
Приближается ли ранее нормальное поведение к экспериментально подтверждённой границе отказа.
Требует ли структурное изменение системы новой экспериментальной оценки.
В своих более ранних работах я исследовал многомерные модели производительности с использованием представления в виде куба данных (data cube), позволяющего строить различные проекции в форме контрольных карт и других представлений эксплуатационных характеристик.
Концепция ОНФ позволяет связать эти разработки с экспериментально установленными областями работоспособности и анализом их изменения во времени.
7. К замкнутому циклу управления ОНФ
Объединение экспериментального и статистического подходов позволяет предложить практический жизненный цикл управления областью нормального функционирования.
Шаг 1 — Построение (Construct).
Определение границ функционирования посредством контролируемых экспериментов, включая нагрузочные, стрессовые и другие необходимые испытания.
Шаг 2 — Мониторинг (Monitor).
Использование SETDS для наблюдения за фактическим поведением системы и статистического определения границ ОНФ.
Шаг 3 — Обнаружение изменений (Detect).
Выявление исключений, трендов и точек изменения, которые могут свидетельствовать об изменении характера функционирования системы.
Шаг 4 — Прогнозирование (Predict).
Прогнозирование приближения поведения системы к статистически определённой или экспериментально подтверждённой границе.
Шаг 5 — Проверка и перестроение (Validate and Rebuild).
Проведение новых экспериментов, когда это необходимо для проверки или реконструкции границ ОНФ после существенных изменений.
В результате образуется замкнутый контур обратной связи, в котором экспериментальное тестирование и статистический мониторинг взаимно дополняют друг друга.
Тот же принцип может применяться далеко за пределами ИТ, включая промышленное производство, робототехнику, транспорт и другие адаптивные технические системы.
8. Заключение: новый взгляд на привычные инженерные методы
Основная идея достаточно проста.
Тестирование производительности определяет, на что система способна. Статистический мониторинг показывает, как система обычно работает и каким образом её поведение изменяется. ОНФ предоставляет общую модель, связывающую эти два представления.
Ни один из отдельных методов сам по себе не является новым.
Эксперименты с роботами, нагрузочное тестирование, статистическое управление процессами и обнаружение точек изменения имеют многолетнюю историю.
Предлагаемый вклад заключается в их объединении в рамках общей модели нормального функционирования, в которой сама область допустимой работы системы становится объектом измерения, анализа, прогнозирования и реконструкции.
Оглядываясь на свои ранние эксперименты с промышленными роботами, я нахожу интересным, что тот же фундаментальный вопрос остаётся актуальным спустя десятилетия:
Насколько далеко система может отклониться от ожидаемых условий работы, продолжая при этом успешно выполнять свои функции?
Сегодня, благодаря автоматизированному тестированию производительности, статистическому мониторингу и современным аналитическим методам, у нас появляется возможность отвечать на этот вопрос непрерывно.
Возможно, именно это станет следующим важным этапом развития концепции области нормального функционирования.
Литература и ссылки
Трубин И. А. (1986). «Исследование процессов захватывания объектов манипулирования промышленным роботом». Кандидатская диссертация.
Leznik, M., Iqbal, M. S., Trubin, I., Lochner, A., Jamshidi, P., Bauer, A. (2022). Change Point Detection for MongoDB Time Series Performance Regression. Companion of the ACM/SPEC International Conference on Performance Engineering (ICPE '22), pp. 45–48. https://doi.org/10.1145/3491204.3527488
Trubin, I. (2008). Exception Based Modeling and Forecasting. CMG.
Perfomalist. Статистический анализ исключений, трендов и точек изменения. https://perfomalist.com
No comments:
Post a Comment