









|
Библиотека
|
ваш профиль |
Статья опубликована с лицензией Creative Commons Attribution-NonCommercial 4.0 International License (CC BY-NC 4.0) – Лицензия «С указанием авторства – Некоммерческая».|
Программные системы и вычислительные методы
Оформленная ссылка на статью:
Моничев И.Д., Черяев А.С., Государев И.Б., Жуков Н.Н. К оценке производительности микросервисного взаимодействия в веб-фреймворках // Программные системы и вычислительные методы. 2026. № 2. С. 140-160. DOI: 10.7256/2454-0714.2026.2.78427 EDN: EDARNH URL: https://nbpublish.com/library_read_article.php?id=78427
К оценке производительности микросервисного взаимодействия в веб-фреймворках
DOI: 10.7256/2454-0714.2026.2.78427EDN: EDARNHДата направления статьи в редакцию: 26-02-2026Дата получения первой рецензии с формулировкой «Отправлена на доработку с рекомендациями рецензента»: 01-03-2026 13:16Дата доработки рукописи автором после первой рецензии: 08-03-2026 14:15Дата получения последней положительной рецензии с рекомендацией «опубликовать»: 10-03-2026 04:19Статья публикуется в одобренном рецензентами варианте (после получения последней положительной рецензии, рекомендующей рукопись к публикации) с исправлениями автора (внесенными им после получения предварительных рецензий, рекомендующих рукопись к доработке). Все рецензии (включая предварительные рецензии) опубликованы в открытом доступе непосредственно за текстом самой статьи. Все варианты авторских исправлений хранятся в депозитарии издательства и могут быть доступны по требованию уполномоченных организаций. Прочитать все рецензии на эту статью Дата публикации: 15-05-2026Аннотация: При проектировании микросервисных систем выбор технологической платформы требует достоверной и сопоставимой оценки её производительности в условиях реальной нагрузки. Предметом исследования является экспериментальный анализ производительности микросервисного взаимодействия, реализованного на различных веб-фреймворках. Объектом исследования выступают серверные технологии, используемые при разработке микросервисных приложений. Актуальность работы обусловлена тем, что при проектировании микросервисных систем выбор технологической платформы требует достоверной и сопоставимой оценки её производительности в условиях реальной нагрузки. Особое внимание уделяется обеспечению сопоставимости результатов за счёт сохранения неизменными бизнес-логики, сценариев взаимодействия сервисов и параметров инфраструктурного окружения. В рамках исследования проведено сравнение трёх реализаций микросервисного приложения, разработанных с использованием ASP.NET Core, NestJS и Gin. Оценка выполнялась по метрикам времени отклика, перцентиля p95, пропускной способности (RPS), загрузки процессора и потребления оперативной памяти. Исследование выполнено на основе прикладного экспериментального подхода с использованием контейнеризированной инфраструктуры Docker. Нагрузочное тестирование проводилось с использованием инструмента k6, мониторинг потребления ресурсов осуществлялся средствами Prometheus и cAdvisor при фиксированных условиях проведения эксперимента. Основными выводами проведённого исследования являются результаты сравнительного анализа производительности микросервисных приложений на различных веб-фреймворках. Установлено, что реализация на Gin демонстрирует наименьшие значения времени отклика и перцентиля p95, минимальное потребление вычислительных ресурсов и наибольшую пропускную способность. ASP.NET Core обеспечивает стабильные показатели производительности при умеренной загрузке процессора, однако характеризуется повышенным потреблением памяти. Для NestJS зафиксированы наибольшие значения задержек и загрузки CPU. Научная новизна работы заключается в разработке и формализации воспроизводимой методики сравнительной оценки производительности микросервисного взаимодействия, учитывающей как временные характеристики, так и показатели потребления ресурсов. Практическая значимость результатов состоит в возможности использования предложенной методики для обоснованного выбора технологического стека и принятия архитектурных решений при разработке распределённых систем. Ключевые слова: Микросервисная архитектура, Микросервисное взаимодействие, Веб-фреймворки, Производительность, Нагрузочное тестирование, Архитектурная модель, Контролируемый эксперимент, Метрики времени отклика, Пропускная способность, ВоспроизводимостьAbstract: When designing microservice systems, the choice of a technological platform requires a reliable and comparable assessment of its performance under real workload conditions. The subject of this study is the experimental analysis of microservice interaction performance implemented using different web frameworks. The object of the research is server-side technologies used in the development of microservice applications. The relevance of the study is determined by the need for objective and comparable performance evaluation when selecting a technological platform for microservice architectures under realistic load conditions. Special attention is given to ensuring the comparability of results by keeping the business logic, service interaction scenarios, and infrastructure environment parameters unchanged. The study includes a comparison of three implementations of a microservice application developed using ASP.NET Core, NestJS, and Gin. The evaluation was performed using the following metrics: response time, p95 latency, throughput (RPS), CPU utilization, and memory consumption. The research was conducted using an applied experimental approach based on a containerized Docker infrastructure. Load testing was performed using the k6 tool, while resource consumption monitoring was carried out using Prometheus and cAdvisor under fixed experimental conditions. The main outcomes of the study are the results of a comparative performance analysis of microservice applications implemented with different web frameworks. The Gin-based implementation demonstrated the lowest response time and p95 latency, minimal computational resource consumption, and the highest throughput. ASP.NET Core provided stable performance with moderate CPU utilization but showed increased memory consumption. NestJS demonstrated the highest latency values and CPU load. The scientific novelty of the study lies in the development and formalization of a reproducible methodology for comparative evaluation of microservice interaction performance, taking into account both time-related characteristics and resource consumption metrics. The practical significance of the results lies in the possibility of using the proposed methodology to support informed technology stack selection and architectural decision-making in the development of distributed systems. Keywords: Microservice architecture, Microservice interaction, Web frameworks, Performance, Load testing, Architectural model, Controlled experiment, Response time metrics, Throughput, ReproducibilityВВЕДЕНИЕ Современные веб-приложения всё чаще строятся на базе микросервисной архитектуры, которая обеспечивает независимое развитие и масштабирование компонентов системы. При проектировании таких решений возникает потребность в достоверной и сопоставимой оценке производительности серверных веб-фреймворков. При этом отсутствует единый стандарт оценки производительности микросервисного взаимодействия. Различия в организации экспериментов, сценариях нагрузки и способах измерения приводят к тому, что полученные данные сложно экстраполировать на реальные проекты и использовать при выборе технологического стека [1]. В настоящем исследовании предлагается унифицированная методика оценки производительности микросервисного взаимодействия, основанная на контролируемом эксперименте и единой архитектурной модели. Её формализация обеспечивает воспроизводимость результатов и позволяет разработчикам сравнивать веб-фреймворки в равных условиях, а значит – обоснованно выбирать технологию. В исследовании рассматриваются три языка программирования вместе с характерными для них веб-фреймворками, применяемыми при построении микросервисных систем: для JavaScript – NestJS [2], для C# – ASP.NET Core [3], для Go – Gin [4]. Объектом исследования выступают серверные технологии, используемые при разработке микросервисных приложений. Предметом исследования является экспериментальный анализ производительности микросервисного взаимодействия, реализованного на различных веб-фреймворках. Целью исследования является формирование методики оценки производительности приложения на базе микросервисной архитектуры, реализуемого с использованием различных веб-фреймворков, и проверка её эффективности в рамках экспериментального исследования, основанного на единой архитектурной модели. Основными задачами для реализации цели рассматриваются следующие.
Проведённое исследование позволяет сформировать сравнительную оценку эффективности веб-фреймворков и выработать рекомендации по их применению в зависимости от характера микросервисной нагрузки и архитектурных требований. МЕТОДИКА ПРОВЕДЕНИЯ ОЦЕНКИ ПРОИЗВОДИТЕЛЬНОСТИ МИКРОСЕРВИСНОГО ВЗАИМОДЕЙСТВИЯ Для объективного сравнения производительности микросервисного взаимодействия в различных веб-фреймворках необходима методика, обеспечивающая воспроизводимость результатов и минимизирующая влияние внешних факторов. В настоящем исследовании проводится контролируемый воспроизводимый эксперимент, при котором варьируется только один независимый параметр – используемая технологическая платформа – при неизменности всех остальных условий [5]. Предлагаемая методика реализуется в виде последовательности этапов, обеспечивающих сопоставимость результатов при сравнении различных веб-фреймворков:
Первым этапом методики является формирование единых условий проведения эксперимента, обеспечивающих сопоставимость результатов при сравнении различных веб-фреймворков. Согласно подходу к сравнительному анализу производительности веб-фреймворков, предложенной TechEmpower [6] критическими факторами достоверности результатов являются:
Также важно учитывать влияние особенностей реализации исследуемых веб-фреймворков. В различных языках программирования и программно-технологических средах используются отличающиеся механизмы доступа к данным, обработки входящих запросов и конфигурации серверной инфраструктуры, что способно оказывать значительное влияние на получаемые показатели производительности [7]. Для обеспечения сопоставимости экспериментов в ряде исследований, в частности в тестах организации TechEmpower [8], используются унифицированные условия: единый дистрибутив операционной системы, одинаковая система управления базами данных PostgreSQL и выполнение прямых SQL-запросов без применения ORM-библиотек и дополнительных абстракций. Также важным аспектом является тип и внутренняя организация баз данных, поскольку разные СУБД по-разному обрабатывают операции чтения, записи, индексации и транзакций, что может влиять на время отклика сервисов и искажать результаты сравнения. Поэтому во всех трёх реализациях использовались одинаковые базы данных, которые перед каждым запуском тестов приводились к единому начальному состоянию: выполнялась очистка хранилища и перезапуск сервера, поскольку наличие накопленных данных и состояние кэшей СУБД напрямую отражаются на скорости обработки запросов и, как следствие, на общей производительности приложения [9]. Изоляция всех компонентов эксперимента также является ключевым фактором, поскольку в контейнерах Docker можно указать фиксированные параметры ресурсов и отслеживать их потребление с помощью сторонних инструментальных средств (например, Grafana и Cadvisor), что было бы проблематично реализовать без контейнеризации [10]. Такой подход обеспечивает воспроизводимость эксперимента, а также удобство в развёртывании экспериментальной среды. Вторым этапом методики является выбор техник нагрузочного тестирования. Задав общие принципы организации эксперимента и условия обеспечения его воспроизводимости, необходимо определить конкретные методы проведения нагрузочного воздействия на систему. Для этого используются различные техники нагрузочного тестирования, каждая из которых позволяет изучить отдельные аспекты производительности микросервисных приложений и их поведение под разными типами нагрузки. Нагрузочное тестирование представляет собой метод оценки поведения программной системы при воздействии контролируемой вычислительной нагрузки [11].В контексте микросервисных архитектур нагрузочное тестирование преследует двойную цель. Во-первых, это определение пороговых характеристик производительности отдельных сервисов; во-вторых, выявление узких мест при межсервисном взаимодействии. Согласно стандарту ISO/IEC 25010:2023 (Systems and software Quality Requirements and Evaluation) [12], производительность (performance efficiency) является одной из восьми ключевых характеристик качества программного обеспечения, включающей следующие аспекты:
Нагрузочное тестирование позволяет количественно оценить эти характеристики в условиях, приближенных к реальным. Нагрузочное тестирование можно классифицировать по характеру нагрузки [13].
Третьим этапом методики является определение метрик оценки производительности. После выбора подходящих техник нагрузочного тестирования требуется определить показатели, по которым будет оцениваться эффективность исследуемых веб-фреймворков. В текущем исследовании для оценки производительности микросервисных веб-фреймворков рассматриваются следующие метрики производительности. Среднее время отклика. Усреднённый временной интервал между отправкой HTTP-запроса и получением полного HTTP-ответа. где Перцентили времени отклика. p-й перцентиль – значение, ниже которого находится процент измерений в упорядоченном множестве. Например, если p95 времени отклика равняется 500 мс, то это означает, что 95% запросов возвращались серверу быстрее 500 мс. Эта метрика позволяет выявлять существенные задержки, недоступные при усреднении, выражено в миллисекундах. Запросов в секунду (RPS). Количество успешно обработанных HTTP-запросов (HTTP status code 2XX, 3XX) в единицу времени. где Инструментальные средства для проведения нагрузочного тестирования предоставляют множество метрик и характеристик, однако в текущем исследовании наиболее интересными для эксперимента были выбраны описанные выше. В дополнение к временным метрикам важно учитывать и эффективность использования вычислительных ресурсов, так как нехватка CPU или оперативной памяти может вызывать скрытую деградацию производительности, которая не всегда отражается в одних только временных метриках. В настоящем исследовании рассматриваются два ключевых показателя использования вычислительных ресурсов: средняя загрузка CPU и потребление оперативной памяти. Средняя загрузка CPU – метрика, отражающая долю процессорного времени, затраченного контейнерами микросервисного приложения в течение проведения эксперимента. Показатель используется для оценки вычислительной эффективности реализации и интенсивности использования процессорных ресурсов в работе под нагрузкой. В процессе мониторинга данные о загрузке CPU собирались при помощи системы сбора метрик, основанной на временных рядах. Для каждого Docker-контейнера регистрировался накопительный счётчик процессорного времени, фиксирующий общее количество секунд, в течение которых процессор выполнял инструкции контейнера к моменту времени t. Для получения фактической загрузки CPU из этого счётчика вычислялась скорость его изменения во времени – аналог производной по времени. В рамках эксперимента для этих целей использовалась функция rate() системы мониторинга Prometheus, вычисляющая среднюю скорость роста накопленного счётчика за заданный временной интервал. В качестве интервала усреднения ∆t принималось 30 секунд после завершения каждого теста, что обеспечивало устойчивость и сопоставимость значений. Таким образом, интенсивность использования CPU для контейнера определялась выражением: где Результирующее значение Потребление оперативной памяти – метрика, отражающая средний объём оперативной памяти, занятый контейнерами микросервисного приложения в процессе выполнения нагрузки. Показатель используется для оценки ресурсной эффективности реализации и устойчивости приложения к утечкам памяти при длительном выполнении. Заключительными этапами предлагаемой методики являются проведение нагрузочного эксперимента, сбор метрик производительности и последующий анализ полученных результатов. Для каждого Docker-контейнера фиксировался текущий объём используемой физической памяти. Данные собирались с помощью системы наблюдения за временными рядами, обеспечивающей периодическую регистрацию значений данной метрики. Так как использование памяти может незначительно колебаться во времени, для получения усреднённого и устойчивого показателя применялось вычисление среднего значения по интервалу наблюдения. В рамках эксперимента для этого использовалась функция avg_over_time() системы мониторинга Prometheus, которая вычисляет среднее значение метрики на заданном промежутке времени. Интервал усреднения составлял 60 секунд после завершения теста. Для общей оценки потребления оперативной памяти вычислялась сумма по всем контейнерам, а затем полученное значение было выражено в мегабайтах. ЭКСПЕРИМЕНТАЛЬНОЕ ПРИЛОЖЕНИЕ В качестве экспериментального приложения в настоящем исследовании используется торговая платформа, включающая базовые операции взаимодействия между пользователями, заказами и платежами. Подобные системы характерны для сферы электронной коммерции (e-commerce) и позволяют анализировать поведение микросервисов в условиях нагрузочного тестирования. В рамках разработанного приложения выделяются следующие ключевые сущности:
Эти сущности отражают реальные процессы в электронной коммерции и служат основой для проектирования микросервисов и их взаимодействия. Взаимодействие микросервисов можно классифицировать на два подхода: синхронный и асинхронный. Каждый из этих подходов имеет свои особенности, преимущества и недостатки, которые определяются в контексте требований системы [14]. При проектировании приложения было принято решение использовать комбинированный подход к взаимодействию микросервисов, сочетающий синхронное и асинхронное взаимодействие. Синхронное взаимодействие осуществляется через API Gateway [15], который служит единой точкой входа для клиентских запросов и маршрутизирует их к соответствующим микросервисам по протоколу HTTP. Асинхронное взаимодействие реализовано с использованием брокера сообщений, который обеспечивает обмен событиями между сервисами без прямой зависимости между ними. Схема микросервисной архитектуры приложения, построенная с использованием шаблона API Gateway, представлена на рисунке 1. Клиентское приложение взаимодействует с системой через единый входной пункт – API Gateway, который инкапсулирует внутреннюю структуру сервисов и маршрутизирует запросы к соответствующим микросервисам. Рисунок 1 – Схема микросервисной архитектуры приложения Архитектура включает следующие компоненты.
Созданная архитектура была воспроизведена на трёх веб-фреймворках: ASP.NET Core, NestJS и Gin. При этом ASP.NET Core реализует строго типизированный модульный подход с поддержкой контроллеров и внедрения зависимостей, NestJS предлагает аналогичную модульную структуру в экосистеме JavaScript, а Gin представляет лишь базовые средства маршрутизации и обработки HTTP-запросов и оставляет проектирование архитектуры на усмотрение разработчика. ЭКСПЕРИМЕНТАЛЬНОЕ ОКРУЖЕНИЕ В таблице 1 приведены характеристики тестовой платформы – компьютера, на котором были запущены Docker-контейнеры для обеспечения сопоставимых условий. Такой подход позволил изолировать окружение каждого микросервиса, исключая влияние внешних факторов: различия в системных зависимостях, настройках, версиях ОС, что в результате свидетельствует о лучшей воспроизводимости результатов исследования. Таблица 1 – Характеристики тестовой платформы
Для устранения влияния различий в средах выполнения программного кода и библиотечных API на итоговые показатели фиксируются версии используемых стеков. В таблице 2 отражены зафиксированные версии технологий. Таблица 2 – Зафиксированные версии технологий
Запросы к микросервисам в синхронных сценариях направлялись через общий API Gateway, что эмулировало реальный маршрут REST-взаимодействия. В ходе испытаний задействовались встроенные агенты мониторинга приложений, для минимизации их воздействия на результаты, мониторинг был ограничен сбором внешних метрик ответа и потребления ресурсов. Для этих целей применялись cAdvisor и Prometheus: первый собирал данные о загрузке процессора, использовании оперативной памяти и состоянии контейнеров Docker, а второй осуществлял агрегацию и хранение метрик, выполняя периодические запросы к cAdvisor и предоставляя результаты в виде временных рядов для последующего анализа. Для оценки производительности были применены четыре типовых сценария, охватывающие как синхронное, так и асинхронное взаимодействие. Сценарий 1 – получение одного элемента по идентификатору. В ходе его реализации выполнялся GET-запрос на получение одного экземпляра сущности по уникальному идентификатору. Сценарий моделирует типовую операцию чтения. При этом, однако, возможна межсервисная зависимость, например, обращение к другому сервису для получения дополнительной информации. Сценарий 2 – получение списка элементов. Выполнялся GET-запрос на выборку списка сущностей с поддержкой пагинации. Данный сценарий позволил оценить производительность при передаче набора данных и нагрузку на базу данных и API Gateway. Сценарий 3 – создание нового элемента. Выполнялся POST-запрос на создание новой сущности через API Gateway. Сценарий имитирует типовую операцию записи. Сценарий 4 – асинхронное обновление статуса через брокера сообщений. Моделируется сценарий, в котором один микросервис отправляет на публикацию сообщение в очередь сообщений брокера. Нагрузочное тестирование производилось с помощью специального инструментария k6, генерирующего HTTP-запросы к сервисам. В работе [16] был представлен сравнительный анализ наиболее популярных инструментальных средств для нагрузочного тестирования. Авторы считают необходимым отметить, что k6 обеспечивает высокую надёжность результатов, удобство написания тестов и стабильную генерацию нагрузки при большом количестве виртуальных пользователей. Средства k6 при этом демонстрируют низкую нагрузку на систему при выполнении сценариев. Для имитации параллельных пользователей использовались 100 виртуальных клиентов (потоков), одновременно отправляющих запросы, что обеспечивало равномерную нагрузку на систему. Чтобы избежать одновременной отправки всех запросов и более реалистично распределить нагрузку, между последовательными запросами каждого виртуального пользователя была установлена задержка в 1 секунду. Каждый сценарий при этом запускался в 10 повторениях для повышения надежности результатов [17]. Полученные значения метрик усреднялись по всем повторениям перед занесением в итоговую таблицу. Многократное повторение с последующим усреднением метрик соответствует общепринятой методике получения статистически достоверных данных. ЭКСПЕРИМЕНТ Для оценки производительности микросервисов в проведённом эксперименте тестированию подверглись четыре ключевых сценария API для сервиса заказов: Update Order (обновление заказа), Get Order (получение одного заказа по ID), Get Orders (получение списка заказов) и Create Order (создание нового заказа). Каждый сценарий выполнялся в трёх реализациях (NestJS, Gin, ASP.NET) при аналогичных условиях нагрузки согласно установленной методологии. Далее приведены сводные таблицы с результатами измерений по каждой метрике, а также соответствующие графики для наглядного сравнения веб-фреймворков NestJS, Gin и ASP.NET Core в каждом сценарии. В таблице 3 и на рисунке 2 представлены результаты сравнения среднего времени отклика на запрос по четырём сценариям взаимодействия с сервисом заказов. Таблица 3 – Показатели среднего времени отклика
Рисунок 2 – График среднего времени отклика Полученные значения показывают, что микросервисы, реализованные с использованием Gin, демонстрируют наименьшее время отклика во всех сценариях – от 1,46 до 13,55 мс, что указывает на высокую эффективность реализации и низкие накладные расходы среды выполнения. ASP.NET Core показывает сопоставимые результаты – от 2,47 до 17,44 мс с незначительным увеличением задержек, сохраняя при этом стабильную производительность. Наибольшие значения времени отклика наблюдаются у NestJS – от 5,43 до 51,54 мс, что можно объяснить интерпретируемой модели выполнения JavaScript и дополнительной логики фреймворка. Таким образом, полученные данные подтверждают преимущество компилируемых языков Go и C# в задачах с высокой частотой запросов, где критичны скорость обработки и предсказуемость отклика. В таблице 4 и на рисунке 3 представлены результаты сравнения времени отклика на уровне 95-го перцентиля (p95) по тем же сценариям взаимодействия с сервисом заказов. Таблица 4 – Показатели отклика на уровне 95-го перцентиля
Рисунок 3 – График отклика на уровне 95-го перцентиля Анализ данных показывает, что микросервисы, реализованные с использованием Gin, вновь демонстрируют наилучшие результаты – значения p95 варьируются от 3,83 до 27,87 мс, что говорит о высокой предсказуемости и равномерности производительности даже при нагрузке. Фреймворк ASP.NET Core показывает немного большие значения – от 6,16 до 33,64 мс, сохраняя при этом стабильную динамику и умеренный разброс между средним временем и p95, что указывает на эффективное управление ресурсами и устойчивость к временным пикам нагрузки. Наибольшие значения p95 характерны для NestJS – от 14,05 до 92,51 мс, что свидетельствует о более выраженных колебаниях времени отклика и меньшей стабильности под нагрузкой. В таблице 5 и на рисунке 4 представлены результаты сравнения пропускной способности сервисов, измеренной в количестве обработанных HTTP-запросов в секунду (RPS). Таблица 5 – Показатели скорости обработки запросов
Рисунок 4 – График скорости обработки запросов Полученные данные демонстрируют, что в большинстве сценариев разница между фреймворками минимальна, и все три реализации обеспечивают высокую пропускную способность – значения находятся в диапазоне от 94 до 100 RPS, что свидетельствует о сопоставимом уровне эффективности при обработке запросов. Тем не менее, в сценариях, связанных с операциями записи (Create Order и Get Order), приложение, реализованное на Gin, демонстрирует наивысшие значения пропускной способности. Это может быть связано с архитектурными особенностями языка Go, ориентированного на эффективную обработку конкурентных задач и минимальные накладные расходы при выполнении сетевых операций. В таблице 6 и на рисунке 5 представлены результаты сравнения средней загрузки центрального процессора (CPU %), зафиксированной при выполнении основных сценариев взаимодействия с сервисом заказов. Таблица 6 – Показатели средней загрузки CPU
Рисунок 5 – График средней загрузки CPU Средняя загрузка CPU в Go-реализации находится в диапазоне от 0,84 % до 5,32 %, что подтверждает эффективность компилируемого кода и оптимальный механизм планирования горутин. Показатели ASP.NET Core от 1,74 % до 3,70 % также остаются низкими и стабильными, что соответствует оптимизации среды .NET JIT-компиляцией и хорошему управлению потоками. NestJS показывает наиболее высокие значения – от 2,52 % до 9,25 %, что связано с интерпретируемой природой JavaScript и дополнительными накладными расходами событийного цикла Node.js при параллельной обработке запросов. Полученные данные показывают, что микросервисы на ASP.NET Core и Gin демонстрируют наименьшую нагрузку на процессор, тогда как NestJS требует больше вычислительных ресурсов при обработке тех же запросов. В таблице 7 и на рисунке 6 представлены результаты измерений потребления оперативной памяти (RAM, МБ) во время выполнения основных сценариев взаимодействия с сервисом заказов. Таблица 7 – Показатели потребления оперативной памяти
Рисунок 6 – График потребления оперативной памяти Среднее использование памяти для Go находится в диапазоне от 43,61 до 98,52 МБ, что соответствует лёгкой архитектуре фреймворка и эффективной работе сборщика мусора с малыми паузами. Показатели ASP.NET Core варьируются от 307,96 до 451,61 МБ, отражая более нагруженную инфраструктуру среды выполнения .NET, которая выделяет больше памяти под служебные объекты и буферы ввода-вывода, но обеспечивает стабильную работу без утечек. Фреймворк NestJS демонстрирует использование в пределах от 271,42 до 338,66 МБ, что несколько ниже ASP.NET Core, однако выше, чем у Go. Повышенное потребление памяти связано с интерпретируемой моделью Node.js, большим количеством зависимостей и динамической типизацией JavaScript. Данные показывают, что микросервисы, реализованные с использованием Gin, потребляют существенно меньше оперативной памяти по сравнению с NestJS и ASP.NET Core, что подтверждает компактность среды выполнения и отсутствие избыточных абстракций в Go. Обобщая результаты проведённого эксперимента, можно сделать следующие выводы относительно производительности исследуемых веб-фреймворков. Микросервисы, реализованные с использованием Gin, демонстрируют наилучшие показатели эффективности по совокупности ключевых метрик. Для них характерно минимальное среднее время отклика в диапазоне 1,46–13,55 мс, а также наименьшие значения 95-го процентиля (p95) — 3,83–27,87 мс. Кроме того, решения на базе Gin обеспечивают наиболее высокую пропускную способность, достигающую значений порядка 99 RPS, при низкой загрузке процессора (до 5,32%) и минимальном потреблении оперативной памяти (около 98,52 МБ). Фреймворк ASP.NET Core показал сопоставимые результаты по задержкам и стабильности отклика, при этом обеспечивая умеренное потребление ресурсов. Средняя загрузка процессора – 1,74-3,70%, а использование памяти – приблизительно 308-452 МБ. Реализация на NestJS продемонстрировала наибольшее среднее и p95-время отклика – до 92,51 мс и наиболее высокую загрузку CPU – до 9,25%, что объясняется интерпретируемой природой JavaScript, особенностями событийного цикла и дополнительной логикой фреймворка. Несмотря на это, NestJS сохраняет приемлемую пропускную способность и может быть оправдан для сценариев, где приоритетом является скорость разработки. Благодаря использованию JavaScript, веб-фреймворк особенно удобен для фронтенд-разработчиков, поскольку позволяет им без значительных трудозатрат осваивать серверную часть и реализовывать полный цикл веб-разработки в едином технологическом стеке.
ЗАКЛЮЧЕНИЕ В ходе исследования было успешно проведено тестирование производительности веб-приложений, написанных на платформах Gin, ASP.NET Core и NestJS. Описана методика проектирования архитектуры веб-приложений для проведения тестирования производительности. Описаны техники тестирования времени отклика и потребления аппаратных ресурсов компьютера, формализованы оцениваемые показатели, метрики и способы интерпретации результатов тестирования. На основе результатов исследования были сформулированы выводы по оценке производительности веб-фреймворков на базе микросервисной архитектуры. Они могут быть использованы исследователями для анализа производительности других технологий в различных сценариях нагрузочного тестирования. Техническая новизна полученных исследований заключается в разработке унифицированных методов сравнительного анализа производительности микросервисных веб-фреймворков с учётом метрик потребления вычислительных ресурсов. Результаты исследований акцентирует внимание на сопоставимости результатов между различными языками в рамках микросервисной архитектуры. Практическая значимость исследования состоит в возможности применения предложенной методики при выборе технологического стека для индустриальных микросервисных систем: в процессе разработки стендов нагрузочного тестирования в инженерных и исследовательских проектах. Полученные результаты могут служить основой для принятия взвешенного решения по выбору веб-фреймворка при проектировании микросервисных систем. Перспективы дальнейших исследований связаны с расширением набора тестовых сценариев, включением иных моделей взаимодействия микросервисов, а также анализом влияния используемых баз данных, ORM-систем и механизмов сериализации данных на совокупную производительность системы.
Статья публикуется в одобренном рецензентами варианте (после получения последней положительной рецензии, рекомендующей рукопись к публикации) с исправлениями автора (внесенными им после получения предварительных рецензий, рекомендующих рукопись к доработке).
Все рецензии (включая предварительные рецензии) опубликованы в открытом доступе непосредственно за текстом самой статьи. Все варианты авторских исправлений хранятся в депозитарии издательства и могут быть доступны по требованию уполномоченных организаций. Библиография
1. Ponce F., Verdecchia R., Miranda B., Soldani J. Microservices testing: A systematic literature review // Information and Software Technology. 2025. Vol. 188. DOI: 10.1016/j.infsof.2025.107870. EDN: NJUTXM.
2. NestJS Documentation [Электронный ресурс]. – URL: https://docs.nestjs.com (дата обращения: 18.02.2026). 3. ASP.NET Core Documentation [Электронный ресурс]. – URL: https://learn.microsoft.com/aspnet/core (дата обращения: 18.02.2026). 4. Gin Web Framework Documentation [Электронный ресурс]. – URL: https://gin-gonic.com/en/docs (дата обращения: 18.02.2026). 5. Rodrigues H., Silva A. R., Avritzer A. Assessment of performance and its scalability in microservice architectures: Systematic literature review // Journal of Systems and Software. 2025. 6. TechEmpower. Framework Benchmarks [Электронный ресурс]. – URL: https://www.techempower.com/benchmarks/ (дата обращения: 10.12.2025). 7. Szewczyk M., Skublewska-Paszkowska M. Performance comparison of development frameworks in selected environments in REST API architecture // Journal of Computer Sciences Institute. 2025. Vol. 35. P. 121-128. DOI: 10.35784/jcsi.7041. EDN: GJSODZ. 8. TechEmpower. Framework Benchmarks – Data · R23 [Электронный ресурс]. – URL: https://www.techempower.com/benchmarks/#section=data-r23 (дата обращения: 10.12.2025). 9. Тимофеева Н. Е., Гераськин А. С., Полулях К. А. Исследование и построение моделей нагрузочного тестирования СУБД для повышения скорости и производительности распределённой вычислительной системы // Математическая физика и компьютерное моделирование. 2017. С. 75-88. 10. Альфара А. Ю. А., Королев Д. В., Зайцев К. С., Дунаев М. Е. Разработка системы мониторинга для серверного приложения // International Journal of Open Information Technologies. 2023. № 8. С. 24-31. EDN: OCTBSB. 11. Neelapu M. The Effectiveness of Load and Performance Testing on Application Scalability // ESP Journal of Engineering & Technology Advancements. 2024. Vol. 4, Issue 3. P. 171-180. 12. Systems and software engineering – Systems and software Quality Requirements and Evaluation (SQuaRE) – System and software quality models [Электронный ресурс]. – URL: https://www.iso.org/obp/ui/ru/#iso:std:iso-iec:25010:ed-2:v1:en (дата обращения: 10.12.2025). 13. Systems and software engineering – Software and systems engineering – Software testing – Part 1: Concepts and definitions [Электронный ресурс]. – URL: https://www.iso.org/obp/ui/en/#iso:std:iso-iec-ieee:29119:-1:ed-2:v1:en (дата обращения: 10.12.2025). 14. Карпович М. Н. Особенности проектирования микросервисно-событийных архитектур для высоконагруженных распределённых систем обработки информации // Труды БГТУ. Сер. 3: Физико-математические науки и информатика. 2023. № 1 (266). С. 89-95. DOI: 10.52065/2520-6141-2023-266-1-15. EDN: UZKMTV. 15. Zuo X., Su Y., Wang Q., Xie Y. An API gateway design strategy optimized for persistence and coupling // Advances in Engineering Software. 2020. Vol. 148. DOI: 10.1016/j.advengsoft.2020.102878. EDN: QHZWNS. 16. Chandrasekhar A. K., Chandran A. S. Comparative Analysis of Load Testing Tools // International Journal of Creative Research Thoughts (IJCRT). 2021. Vol. 9, Issue 6. ISSN 2320-2882. 17. Акиньшин А. Профессиональный бенчмарк: искусство измерения производительности. – СПб.: Питер, 2021. – 320 с.
References
1
. Ponce, F., Verdecchia, R., Miranda, B., & Soldani, J. (2025). Microservices testing: A systematic literature review. Information and Software Technology, 188. https://doi.org/10.1016/j.infsof.2025.107870
2 . NestJS Documentation. (n.d.). Retrieved February 18, 2026, from https://docs.nestjs.com 3 . ASP.NET Core Documentation. (n.d.). Retrieved February 18, 2026, from https://learn.microsoft.com/aspnet/core 4 . Gin Web Framework Documentation. (n.d.). Retrieved February 18, 2026, from https://gin-gonic.com/en/docs 5 . Rodrigues, H., Silva, A. R., & Avritzer, A. (2025). Assessment of performance and its scalability in microservice architectures: Systematic literature review. Journal of Systems and Software. 6 . TechEmpower. (n.d.). Framework Benchmarks. Retrieved December 10, 2025, from https://www.techempower.com/benchmarks/ 7 . Szewczyk, M., & Skublewska-Paszkowska, M. (2025). Performance comparison of development frameworks in selected environments in REST API architecture. Journal of Computer Sciences Institute, 35, 121-128. https://doi.org/10.35784/jcsi.7041 8 . TechEmpower. (n.d.). Framework Benchmarks-Data · R23. Retrieved December 10, 2025, from https://www.techempower.com/benchmarks/#section=data-r23 9 . Timofeeva, N. E., Geraskin, A. S., & Polulyakh, K. A. (2017). Research and construction of models for load testing of DBMS to increase the speed and performance of distributed computing systems. Mathematical Physics and Computer Modeling, 75-88. 10 . Alfar A. Yu., Korolev, D. V., Zaitsev, K. S., & Dunaev, M. E. (2023). Development of a monitoring system for a server application. International Journal of Open Information Technologies, 8, 24-31. 11 . Neelapu, M. (2024). The effectiveness of load and performance testing on application scalability. ESP Journal of Engineering & Technology Advancements, 4(3), 171-180. 12 . Systems and software engineering-Systems and software Quality Requirements and Evaluation (SQuaRE)-System and software quality models. (n.d.). Retrieved December 10, 2025, from https://www.iso.org/obp/ui/ru/#iso:std:iso-iec:25010:ed-2:v1:en 13 . Systems and software engineering-Software and systems engineering-Software testing-Part 1: Concepts and definitions. (n.d.). Retrieved December 10, 2025, from https://www.iso.org/obp/ui/en/#iso:std:iso-iec-ieee:29119:-1:ed-2:v1:en 14 . Karpovich, M. N. (2023). Features of designing microservice-event architectures for highly loaded distributed information processing systems. Proceedings of BGTU, Series 3: Physical and Mathematical Sciences and Informatics, 1(266), 89-95. https://doi.org/10.52065/2520-6141-2023-266-1-15 15 . Zuo, X., Su, Y., Wang, Q., & Xie, Y. (2020). An API gateway design strategy optimized for persistence and coupling. Advances in Engineering Software, 148. https://doi.org/10.1016/j.advengsoft.2020.102878 16 . Chandrasekhar, A. K., & Chandran, A. S. (2021). Comparative analysis of load testing tools. International Journal of Creative Research Thoughts (IJCRT), 9(6). ISSN 2320-2882. 17 . Akinshin, A. (2021). Professional benchmark: The art of measuring performance. SPb: Piter.
Результаты процедуры рецензирования статьи
Рецензия выполнена специалистами Национального Института Научного Рецензирования по заказу ООО "НБ-Медиа". Оценка производительности требует комплексного подхода, включающего анализ пропускной способности, задержек, использования ресурсов и распределённой нагрузки. Среди широко распространенных методов оценки можно назвать нагрузочное тестирование, тестирование взаимодействия и мониторинг латентности. В рецензируемой статье авторами сделан акцент на использование первых двух методов из перечисленных. 1) Предмет и объект исследования К сожалению, во вводной части, автором не приводится четкого формулирования предмета и объекта исследования. В разделе «Экспериментальное приложение» сказано, что «в качестве предметной области в настоящей публикации рассматривается торговая платформа, включающая базовые операции взаимодействия между пользователями, заказами и платежами». У читателя может возникнуть вопрос: является или предметом исследования данный пример предметной области (торговая платформа), или он трактуется несколько иначе, шире? Вместе с тем, автором однозначно и понятно определены цель и задачи исследования, что является положительным моментом. 2) Методология (методика) исследования Предлагаемая методика основана на единой архитектурной модели. На наш взгляд, было бы правильным раздел статьи «Методика проведения эксперимента» переименовать в «Методика проведения оценки производительности микросервисного взаимодействия», поскольку проведение эксперимента является заключительным этапом реализации методики (задача № 3, сформулированная во Введении»). Также, было бы логичным представить этот раздел числовой последовательностью этапов (методической оценки). 3) Актуальность Рецензируемая статья имеет актуальность, в том числе по причине того, что результатом оценки производительности могут быть выявление ошибок (например, каскадные задержки) в микросервисной архитектуре и формулирование рекомендаций по их устранению. Это позволит повысить масштабируемость программной системы в целом. 4) Научная новизна Научная новизна проведенного исследования состоит в разработке унифицированной методики для сравнительного анализа производительности различных микросервисных веб-фреймворков с учётом метрик потребления вычислительных ресурсов. Заслуживает внимания акцент на сопоставимости результатов между различными языками в рамках микросервисной архитектуры. 5) Практическая ценность В статье приведены в достаточно большом объеме материалы и результаты экспериментальной части исследования, на основе которой автором были сформулированы выводы по оценке производительности веб-фреймворков на базе микросервисной архитектуры. Следует согласиться с мнением автора о том, что они могут быть использованы «для анализа производительности других технологий в различных сценариях нагрузочного тестирования». 6) Стиль, структура и содержание В целом, стиль изложения статьи технический. Структура статьи характеризуется логикой изложения материала. Содержание статьи раскрывает решение задач, сформулированных автором во Введении. 7) Библиография Библиография в общем отражает проблематику исследования и является достаточно современной (не устаревшей). 8) Выводы и интерес для читательской аудитории Считаем, что данная статья может вызвать интерес у определенного круга читательской аудитории. Отмеченные рецензентом замечания носят по большей части рекомендательный характер. Заключение: После внесения незначительных правок рецензируемая статья может быть опубликована в журнале «Программные системы и вычислительные методы». Полный текст рецензии на сайте QR код для проверки
Результаты процедуры повторного рецензирования статьи
Рецензия выполнена специалистами Национального Института Научного Рецензирования по заказу ООО "НБ-Медиа". Оценка производительности требует комплексного подхода, включающего анализ пропускной способности, задержек, использования ресурсов и распределённой нагрузки. Среди широко распространенных методов оценки можно назвать нагрузочное тестирование, тестирование взаимодействия и мониторинг латентности. В рецензируемой статье авторами сделан акцент на использование первых двух методов из перечисленных. 1) Предмет и объект исследования К сожалению, во вводной части, автором приводится достаточно четкие и понятные для читателя формулировки предмета и объекта исследования. Так, объектом исследования выступают серверные технологии, используемые при разработке микросервисных приложений, что находит развитие в аспекте предмета исследования - «экспериментальный анализ производительности микросервисного взаимодействия» в данной статье. Однозначно определены цель и задачи исследования, что придает значимость статьи в постановке проблемы исследования и ее возможного решения. 2) Методология (методика) исследования Предлагаемая методика основана на единой архитектурной модели. Логически обоснованным выглядит последовательность (этапы) реализации предлагаемой методики. Справедливо сделана ссылка на критические факторы достоверности результатов, каковыми в частности, являются «архитектурная идентичность» и «особенности реализации исследуемых веб-фреймворков» 3) Актуальность Рецензируемая статья имеет актуальность. Результатом оценки производительности является выявление ошибок в микросервисной архитектуре и соответствующее формулирование рекомендаций по их устранению. Отметим, что в целом, это принципиально позволяет повышать масштабируемость программной системы в целом. 4) Научная новизна Научная новизна проведенного исследования состоит в разработке унифицированной методики для сравнительного анализа производительности различных микросервисных веб-фреймворков с учётом метрик потребления вычислительных ресурсов. Заслуживает внимания сделанный автором акцент на сопоставимости результатов между различными языками в рамках микросервисной архитектуры. 5) Практическая ценность В статье приведены в достаточно большом объеме материалы экспериментального исследования. На их основе автором были сформулированы выводы по оценке производительности веб-фреймворков на базе микросервисной архитектуры. Результаты экспериментального исследования могут быть использованы для анализа производительности и в отношении других оцениваемых веб-фреймворков, при различных сценариях нагрузочного тестирования. 6) Стиль, структура и содержание Стиль изложения статьи технический. Структура статьи характеризуется логикой изложения материала. Содержание статьи раскрывает решение задач, сформулированных автором во Введении. 7) Библиография Библиография в общем отражает проблематику исследования и является достаточно современной (не устаревшей). 8) Выводы и интерес для читательской аудитории Считаем, что данная статья может вызвать интерес у определенного круга читательской аудитории, интересующихся проблемами построения интегрируемых программных систем. Заключение: Рецензируемая статья может быть опубликована в журнале «Программные системы и вычислительные методы». Полный текст рецензии на сайте QR код для проверки |

Рус

