Статья опубликована в рамках: Научного журнала «Студенческий» № 15(311)
Рубрика журнала: Информационные технологии
Скачать книгу(-и): скачать журнал часть 1, скачать журнал часть 2, скачать журнал часть 3, скачать журнал часть 4, скачать журнал часть 5, скачать журнал часть 6, скачать журнал часть 7
АНАЛИЗ СПОСОБОВ УСКОРЕНИЯ ВЫЧИСЛЕНИЙ В ВЫСОКОНАГРУЖЕННЫХ СИСТЕМАХ
ANALYSIS OF METHODS FOR ACCELERATING COMPUTATIONS IN HIGH-LOAD SYSTEMS
Vladislav Pushkin
student, Department of Information Systems and Networks, Bauman Moscow State Technical University,
Russia, Moscow
Kirill Platonov
student, Department of Information Systems and Networks, Bauman Moscow State Technical University,
Russia, Moscow
Maria Skvortsova
scientific supervisor, PhD of Computer Science, Associate Professor, Bauman Moscow State Technical University,
Russia, Moscow
АННОТАЦИЯ
Оптимизация вычислений в высоконагруженных системах является ключевым направлением повышения их эффективности. В статье рассматриваются подходы, включая отложенные и предварительные вычисления, параллельную и фоновую обработку, а также их комбинированное использование.
ABSTRACT
Optimization of computations in high-load systems is a key direction for improving their efficiency. The article discusses various approaches, including deferred and precomputed calculations, parallel and background processing, as well as their combined usage.
Ключевые слова: высоконагруженные системы; оптимизация; параллельные вычисления; фоновые задачи; кэширование.
Keywords: high-load systems; optimization; parallel computing; background tasks; caching.
Современные высоконагруженные системы обслуживают тысячи и даже миллионы запросов в секунду, требуя не только горизонтального и вертикального масштабирования, но и оптимизации вычислений для сокращения времени отклика и эффективного использования ресурсов. Применение вычислительных паттернов, обеспечивающих медленное выполнение задач, предварительную подготовку результатов, распределённое параллельное выполнение и фоновую обработку, позволяет обеспечить устойчивую работу приложений даже при экстремальных нагрузках.
Отложенные вычисления. Отложенные вычисления откладывают выполнение операций до момента обращения к его результатам, что позволяет избежать лишних вычислений и снизить нагрузку на CPU. В приложениях это применимо при формировании отчётов и сложных выборок данных: система не тратит ресурсы на генерацию информации, если пользователь не запрашивает соответствующий отчёт. Например, в аналитических дашбордах отчёты вычисляются только при явном запросе и кешируются для повторного использования [3].
Предварительные вычисления. Предварительные вычисления выполняют ресурсоёмкие задачи во время низкой нагрузки заранее или по расписанию, сохраняя результаты в базе данных, кэше или файловом хранилище. При запросе в систему заранее подготовленные данные возвращаются мгновенно, снижая пиковую нагрузку. Типичные сценарии вычислений подобного рода – расчёт рейтингов, прогнозных моделей и агрегированных отчётов, которые обновляются с периодичностью, заданной планировщиком задач (cron, Airflow) [1].
Распараллеливание задач. Распараллеливание – это ключевой механизм использования всех доступных ресурсов, включающий в себя многопоточность и распределённый параллелизм. Внутри узла наблюдаются потоки или асинхронные операции (Go, async/await), на уровне кластера – распределение задач между серверами посредством брокеров сообщений. Закон Амдала ограничивает масштабируемость, поэтому важно минимизировать долю последовательного кода и накладные расходы на синхронизацию. Например, запросы к разным шардированным таблицам обрабатываются параллельно на разных узлах, и результаты объединяются асинхронно [4, с. 67].
Фоновые вычисления. Фоновые вычисления выносят долгие или неприоритетные операционные задачи в отдельные воркеры или сервисы, освобождая основные потоки для быстрых откликов. Типичные задачи таких операций – это обработка изображений, отправка уведомлений и агрегация логов. Через очереди (RabbitMQ, Kafka, Celery) фронтенд публикует задачу и сразу возвращает ответ пользователю, а воркер выполняет операцию независимо от требований пользователя [2].
Таблица 1.
Сравнение способов ускорения вычислений
Метод |
Эффект на производительность |
Сложность реализации |
Ограничения и сценарии применения |
Отложенные вычисления |
Уменьшает объём ненужных вычислений, снижая среднюю нагрузку. Ресурсы тратятся только при запросе результата. |
Невысокая – требует поддержки ленивой инициализации данных в коде. |
Полезно, когда часть вычислений может никогда не потребоваться. Неприменимо, если все данные обязательно нужны пользователю. |
Предварительные вычисления |
Сокращает время ответа на запрос за счёт того, что тяжёлая работа уже выполнена заранее. Пиковая нагрузка на фронтенд снижается. |
Средняя – нужны планировщики задач, хранение подготовленных результатов, механизм обновления. |
Эффективно для периодических, прогнозируемых задач (статистика, отчёты). Требует балансировки между актуальностью данных и частотой перерасчёта. |
Вывод. Каждый из описанных автором статьи методов – ленивые вычисления, предварительные расчёты, параллельная обработка и фоновые задачи – имеет свои области применения и ограничения. Ленивые вычисления эффективны при неполном знании объёма запросов, предварительные – при прогнозируемых задачах, распараллеливание – при наличии независимых операций, фоновые – для не требующих немедленного ответа задач. Комбинация подходов (например, предварительный расчёт с ленивым обновлением или параллельная обработка с фоновыми сервисами) обеспечивает минимальное время отклика и устойчивую работу системы.
Список литературы:
- Ковалюк О.А. Анализ программных средств кэширования данных в высоконагруженных системах // Научные труды Винницкого национального технического университета. – 2014. – Вып. 3. – [Электронный ресурс]. – Режим доступа: https://trudy.vntu.edu.ua/index.php/trudy/article/view/431 (дата обращения: 19.04.2025).
- Титов И.В., Петрова А.С. Горизонтальное и вертикальное масштабирование высоконагруженных систем: подходы и реализация // Информационные технологии и вычислительные системы. – 2022. – № 2. – 67c.
- Филисов Д.А. Стратегии оптимизации для высоконагруженных приложений: повышение общей производительности // Научный электронный журнал «Современные научные исследования и инновации». – 2023. – № 7 (64).
- Шумилов М.И. Оптимизация высоконагруженных веб-проектов с использованием микросервисной архитектуры // Universum: технические науки. – 2024. – № 11(128). – [Электронный ресурс]. – Режим доступа: https://7universum.com/ru/tech/archive/item/18560 (дата обращения: 19.04.2025).
Оставить комментарий