БЭКТЕСТИНГ И МОДЕЛИРОВАНИЕ ВЫСОКОНАГРУЖЕННЫХ ИНФОРМАЦИОННЫХ СИСТЕМ

BACKTESTING AND MODELING OF HIGHLY LOAD INFORMATION SYSTEMS
Колпаков Д.А.
Цитировать:
Колпаков Д.А. БЭКТЕСТИНГ И МОДЕЛИРОВАНИЕ ВЫСОКОНАГРУЖЕННЫХ ИНФОРМАЦИОННЫХ СИСТЕМ // Universum: технические науки : электрон. научн. журн. 2025. 10(139). URL: https://7universum.com/ru/tech/archive/item/20920 (дата обращения: 05.12.2025).
Прочитать статью:
DOI - 10.32743/UniTech.2025.139.10.20920

 

АННОТАЦИЯ

Современные высоконагруженные системы требуют алгоритмических, модельных подходов и учета хаоса в системе, поэтому бэктестинг является для этого эффективным инструментом. Цель статьи – системный анализ аспектов бэктестинга в риск-управлении высоконагруженными системами и разработка математической модели для идентификации пороговых, риск-значений. Используются методы анализа-синтеза, идентификации, моделирования, дифференциальных уравнений и оптимального управления. Рассмотрены системные и предметные цели бэктестинга. Основные результаты работы: 1) сравнительный анализ различных подходов к бэктестингу и его возможностей; 2) приведена структура высоконагруженной системы, требования к ее инфраструктуре и этапы проектирования системы; 3) предложена формализация (модель) высоконагруженной системы в виде синтаксического кортежа. Акцентировано направление дальнейшего исследования модели и применения гибких моделей, а также возможность практического использования. 

ABSTRACT

Modern high-load systems require algorithmic, model-based approaches and accounting for chaos in the system, so backtesting is an effective tool for this. The purpose of the article is a systematic analysis of backtesting aspects in risk management of high-load systems and the development of a mathematical model for identifying threshold, risk values. Methods of analysis-synthesis, identification, modeling, differential equations and optimal control are used. Systemic and substantive goals of backtesting are considered. Main results of the work:

1) comparative analysis of various approaches to backtesting and its capabilities;

2) the structure of the high-load system, the requirements for its infrastructure and the stages of system design are given;

3) a formalization (model) of a high-load system in the form of a syntactic tuple is proposed. The direction of further research of the model and application of flexible models is emphasized, as well as the possibility of practical use.

 

Ключевые слова: бэктестинг, высоконагруженная система, моделирование, устойчивость, идентификация

Keywords: backtesting, high-load system, modeling, stability, identification

 

Введение

«Высоконагруженные системы» (HLS, HighLoad Systems) – программно-технологические системы для обслуживания запросов мощных пользовательских групп и кластеров серверов (в принципе, одного сервера). Примеры HLS – Amazon, TikTok, Yandex, Netflix и др.

В современных высоконагруженных и волатильных системах (например, финансовых) и необходимости алгоритмических (модельных) подходов к управлению хаос-системами, бэктестинг стал эффективным инструментарием. Он позволяет проверить эффективность модели и подхода при нехватке данных, привлекая компьютерное моделирование и минимизируя риски.

Корректный бэктестинг потребует качества данных, критериев оценки точности (релевантности).

Целью работы является системный анализ теоретико-практических аспектов бэктестинга применительно к высоконагруженным системам и разработка соответствующей структуры и описания системы.

Материалы и методы исследования

Качество тестирования модели можно проверить прямым методом (тестированием), например, с помощью подготовленных заранее тестов и критериев оценки адекватности (релевантности) модели. Но в последнее время, в связи с развитием хаос-моделирования, используется обратное тестирование или бэктестинг (backtesting), «тестирование с использованием предыстории».

Задачи бэктестинга системно отличны от задач риск-управления по качеству (точности, полноте), учету потенциальных рисков и механизмам стресс-тестирования, учета предыстории рисков и др. Поэтому необходимо итерационное, обратное тестирование, в частности:

1) оценка точности, производительности, гипотез модели и др.;

2) идентификация параметров системы (процесса), устойчивости и др.

Особенно эффективно бэктестирование в риск-менеджменте, в частности, управлении рыночным риском VaR (Value at Risk) [1, с.2042] или рисковой стоимостью, стоимостью риск-ситуации.

Бэктестинг может продемонстрировать неадекватность и негибкость модели, недостаточность проведенного прямого тестирования или использованных тестов, данных. Например, он поможет оценить VaR для фондового рынка, рыночные флуктуации и другие важные индикаторы финансового риск-менеджмента.

Эффективность бэктестинга проявляется в анализе трендов, например, на основе метода скользящих средних.

При использовании экспоненциально взвешенной скользящей средней EWMA (Exponentially Weighted Moving Average) волатильность можно оценить

 ,

где  – коэффициент взвешивания (например, 0,95),  – волатильность текущего момента n – процентное изменение цены текущего дня.

Есть и автоматизированное реагирование (SOAR), позволяющее системе стать независимой от пиковых нагрузок, кризисов.

Бэктестинг проводится с использованием различных подходов:

1) до достижения устойчивости (волатильности) модели;

2) до достижения критического уровня сбоев, неустойчивости модели;

3) до достижения первого сбоя (неустойчивости) модели;

4) по разработанному плану, набору тестов и классификации модели (например, на группы «неустойчивые», «устойчивые» или «красная», «желтая», «зеленая» группа);

5) по заданному критерию (функционалу) адекватности, устойчивости, например, проценту сбоев во всем проведенном тестировании и др.

Из сказанного выше можно заключить, что методы бэктестирования недостаточно формализуемы (т.е. для верификации не годятся).

Применение бэктестинга не всегда эффективно и может ввести в заблуждение, так как реальные микроэкономические условия не всегда адекватно воспроизводимы. Качество и репрезентативность данных предыстории и используемая модель прогноза (тестирования) – главные факторы успеха бэктестинга.

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

Высокие нагрузки приводят к длительной обработке запросов с возможной потерей данных и рисками отказов системы. Необходимо тщательно проектировать и моделировать архитектуру инфологической системы, управлять данными, применять кеширование и масштабирование, обеспечить эффективный поиск с помощью высоконагруженных приложений [2, с.153]. Например, кеширование снизит нагрузку с ключевого сервиса запросов и распределит запросы по микросервисам.

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

Высоконагруженные системы часто называют еще data-intensive systems, имея в виду нагруженность по данным, системы мониторинговые и аналитические, распределенные [3, с.79].

Нагружение рассматриваемо как нагружение по данным (метаданным), инструментарию, доступу, требованиям и др.

На рисунке 1 приведена структура высоконагруженной системы.

 

Адаптационное нагружение

Рисунок 1. Структура и задачи высоконагруженной системы

 

Чтобы стать устойчивым, «носителю» HLS следует иметь инфраструктуру:

1) значительного потенциала мощности;

2) независимого аудита системы;

3) динамически и адаптивно оптимизируемую для бизнес-процессов;

4) непрерывного мониторинга;

5) нагрузочного тестирования, сценарного бэктестинга;

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

Есть международный индекс APDEX (Application Performance inDEX) производительности приложений, который связан с долей «довольных» пользователей.

Пример. Логистическая компания «Деловые Линии» провела нагрузочное тестирование около 10000 пользователей и показала максимум APDEX, равный 0,99.

Решения для HLS должны быть оперативно масштабируемые, высокопроизводительные.

Высоконагруженная система как сложная система имеет динамически развивающуюся пользовательскую базу. Часто в ней наблюдается динамический хаос, поэтом может потребоваться хаос-моделирование [4, с.118].

Балансировка потребуется крупным организациям, например, телекоммуникационным, банковским [5, с.80] и др.

Эта процедура должна соответствовать архитектуре системы: централизованной (монолитной) или распределенной (сервис-ориентированной) [6, с.348]. Важно учитывать и выстраивать релевантную стратегию миграции кода из централизованной архитектуры в распределенную, например, микросервисную [7, с.66].

В микросервисной архитектуре приложение формируется из небольших и автономных сервисов, которые решают конкретные бизнес-задачи. В событийно-ориентированной архитектуре каждая компонента системы является актором, обменивающийся событиями, например, управления, контроля или обработки [8, c.648].

В HLS следует использовать кэширование, например, фиксируя временно в ОП ответ на запрос, что снимет нагрузку при ответе на подобный запрос. Здесь «обратный» подход важен.

Пример. Код нужно писать, чтобы была обратная совместимость: «сверху – вниз», в частности, чтобы обрабатывались данные старого и нового формата, без переименования полей. Для этого используемы, например, внутренние облака (как в Яндекс) и контейнеры.

Проектирование систем класса HLS – процесс поэтапный.

Масштабируемость системы определяется масштабируемостью самого «слабого» (уязвимого) его элемента, подсистемы [9, с.38].

Аппаратно-техническая поддержка HLS формируется из оборудования (hardware) класса:

1) совместного пользования (shared);

2) выделенного (dedicated);

3) совместно-размещенного (co-located);

4) собственного хостинга (self-hosting).

При высокой нагруженности данными приложения (DIA, Data-Intensive Applications [10, с.50]), следует отслеживать непрерывно требуемый уровень функциональности – хранения, использования, модификации, поиска, фильтрации и др., а также параметры связанности, размерности, актуальности, частоты обращений (обновлений) и др. 

Здесь необходимо привлекать как принципы каскадной (водопадной, waterfall) методологии, так итерационной (Agile, Scrum), открытых кодов и библиотек, фреймворков (Google, Amazon и др.).

Используются паттерны (шаблоны) архитектур:

1) сервис-ориентированной;

2) асинхронной;

3) конвейерной;

4) отложенных вычислений;

5) «толстого» клиента;

6) шардинга;

7) кластеризации;

8) хаос-моделирования (хаос-тестирования);

9) параллельности;

10) кэширования и др.

Популярен шаблон EDA (Event Driven Architecture) распределенной и  асинхронной архитектуры с высокой масштабируемостью, достаточной гибкостью.

Микросервисом публикуется событие, например, заказ, а другие микросервисы ведут подписку на него (если необходимо, интересно).

Важно выделять и балансировать нагрузки, моделировать и прогнозировать высоконагруженные системы.

Мониторинг поведения высоконагруженной системы учитывает взаимосвязи событий, в том числе, нештатные, а также требует автоматизации (интеллектуализации), минимизации рисков несанкционированного доступа к выводам и данным мониторинга. Внутренний аудит с использованием риск-менеджмента воздействий на HLS необходим из-за усиления нечеткости в HLS, неэффективности политики безопасности, некомпетентности персонала, волновых атак с ростом амплитуды и др.

Для каждой архитектуры задаем свой балансировщик нагрузки и определяем набор доступных для него нагрузок или свой эволюционный оператор нагрузки.

Например, для серверной системы можно это сделать с помощью PID (Process ID, уникальный идентификатор активного процесса) [11, с.230].

Высоконагруженную систему можно формализовать моделью, кортежом вида:

HLS=<Ar, Pr, Rl, Sc, Mn, Cs, Ct, Rd, Mt>,

где Ar – состояние доступа (availability), Pr – состояние производительности (performance), Rl – состояние надежности (reliability), Sc – состояние масштабируемости (scalability), Mn – состояние управляемости (manageability), Cs – состояние стоимости (cost), Ct – состояние согласованности (consistency), Rd – состояние избыточности (redundancy), Mt – состояние сопровождаемости (maintainability).

Каждый фактор состояния может влиять на другой, например, повышение производительности (мощности серверной системы) может повысить управляемость и стоимость.

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

Управление высоконагруженной системой, особенно, адаптивное базируется на учете потенциала нагружения или эффекта «насыщения» системы в области допустимого управления. Такие задачи рассматривались в работе [12, с.75].

Аналогично поступим для – системного ресурса (информационно-логического) в момент времени t и вектора факторов . Вектор  – вектор управляющих воздействий.

Рассмотрим простой динамический вариант , для которого управление  и модель имеет вид:

где  – точка «нагружения».

 

Задача управления: минимизировать по  функционал ) учитывая траекторию, если, например, как в задаче О. Больца,

,

где g(u,t) – заданная функция.

Если g=0, получаем задачу Лагранжа.

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

Заключение

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

Предложенный подход к моделированию таких систем позволит оценить потенциал нагружения (устойчивости) системы.

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

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

 

Список литературы:

  1. Su Q., Qin Z., Peng L., Qin G. Efficiently backtesting conditional Value-at-Risk and conditional Expected Shortfall / Q. Su, Z. Qin, L. Peng, G. Qin // J. of the American Statistical Association. – 2021. – Vol. 116. – No. 536. – P. 2041–2052.
  2. Смирнов Н. А., Червяков Л. М., Бычкова Н. А. Повышение эффективности поисковых запросов высоконагруженных приложений / Н. А. Смирнов, Л. М. Червяков, Н. А. Бычкова // Известия Тульского госуниверситета. Технические науки. – 2025. – Вып. 2. – С. 152-158. DOI: 10.24412/2071-6168-2025-2-152-153
  3. Casale G., Ardagna D., Artac M., et al / G. Casale, D. Ardagna, M. Artac, et al. Dice: quality-driven development. In: «Proceedings of the 7th International Workshop on Modeling in Software Engineering». IEEE Press. –  2015. – P.78-83.
  4. Li Y., Wang L. Chaos in a duopoly model of technological innovation with bounded rationality based on constant conjectural variation / Y. Li, L. Wang // Chaos, Solution and Fractals. – 2019. – No.120. – P. 116-126. DOI: 10.1016/j.chaos.2018.11.038
  5. Рудометкин В. А. Проектирование высоконагруженных систем / В. А. Рудометкин // Труды ИСП РАН. – 2020. – Т. 32. – Вып. 6. – С. 79-86. DOI10.15514/ISPRAS–2020–32(6)–6
  6. Архипцев Е. Д., Мокрецов Н. С. Методы балансировки нагрузки в информационных системах / E. Д. Архипцев, Н. С. Мокрецов // Известия ВУЗов. Сер: Приборостроение. – 2024. – Т.67. – №4. – С. 345–351. DOI:10.17586/0021-3454-2024-67-4-345-351.
  7. Радостаев Д. К., Никитина Е. Ю. Стратегия миграции программного кода из монолитной архитектуры в микросервисы / Д. К. Радостаев, Е. Ю. Никитина // Вестник Пермского университета. Сер: Математика. Механика. Информатика. – 2021. – Вып. 2(53). – С. 65–68. DOI: 10.17072/1993-0550-2021-2-65-68
  8. Татарникова Т. М., Архипцев Е. Д., Кармановский Н. С. Определение размера кластера и числа реплик высоконагруженных систем / Т. М. Татарникова, Е. Д. Архипцев, Н. С. Кармановский // Известия вузов. Приборостроение. – 2023. – Т. 66. – № 8. – С. 646-651. DOI: 10/17586/0021-3454-2023-66-8-646-651
  9. Амиров С. Н. Особенности разработки высоконагруженных систем / С. Н. Амиров // Intern. Journal of Open Information Technologies. –2020. –Vol. 8. – No.8. – Р. 37-45.
  10. Филисов Д. А. Архитектура высоконагруженных приложений / Д. А. Филисов // Universum: техн. науки. Эл. науч. журн. – 2023. – №10(115). – С.49-54. URL: https://7universum.com/ru/tech/archive/item/16138
  11. Malavika R., Volarmathi M. L. Adaptive Server Load Balancing in SDN Using PID Neural Network Controller / R. Malavika, M. L. Volarmathi // Computer Systems Science & Engineering. – 2022. – Vol.42. – No.1. – P. 229–245. DOI: 10.32604/csse.2022.020947
  12. Казиев В. М. Казиев К. В. Эволюционные модели с насыщением / В. М. Казиев, К. В. Казиев / Труды 13-ой межвузовской конференции «Математическое моделирование и краевые задачи». – Самара. – 2003. –C. 75-77.
Информация об авторах

инженер-программист, Qase Inc, РФ, г. Москва

Software Engineer, Qase Inc, Russia, Moscow

Журнал зарегистрирован Федеральной службой по надзору в сфере связи, информационных технологий и массовых коммуникаций (Роскомнадзор), регистрационный номер ЭЛ №ФС77-54434 от 17.06.2013
Учредитель журнала - ООО «МЦНО»
Главный редактор - Звездина Марина Юрьевна.
Top