Files
nis2/project-tasks/p07-a-deathstarbench-tail-latency.md

5.8 KiB
Raw Permalink Blame History

P07-A. DeathStarBench: хвостовая задержка

  • Версия и дата проверки: 1.1, 07.09.2026.
  • Статус: готово к назначению.

Статья и исходные материалы

  • Основная статья: Yu Gan и соавт. — An Open-Source Benchmark Suite for Microservices and Their Hardware-Software Implications for Cloud & Edge Systems. ASPLOS 2019.
  • Кратко о статье: DeathStarBench — открытый набор сквозных приложений, представляющих типичные графы облачных и edge-микросервисов. Авторы показывают, что зависимости между сервисами, программный стек и совместное использование ресурсов создают узкие места, которые не видны в изолированном микротесте. В этом проекте исследуется распространение задержки по графу и поведение её хвостовых квантилей.
  • Почему результат актуален: набор нагрузок продолжает использоваться как открытый стенд для исследований микросервисов. Конкретные зависимости отдельных приложений могут устаревать, поэтому перед проектом фиксируется собираемая версия. Выводы ограничиваются исследуемым графом сервисов и не распространяются на весь современный облачный стек.
  • Артефакты и данные: delimitrou/DeathStarBench под Apache-2.0, с несколькими приложениями, контейнерами и генераторами нагрузки. Зафиксированные ревизии: delimitrou/DeathStarBench@6ecb09706140 (Apache-2.0).
  • Что уже предоставляет артефакт: DeathStarBench предоставляет приложения, контейнерные конфигурации, генераторы нагрузки и средства наблюдения. Их разрешено использовать как объект эксперимента и основу измерительного стенда.

Обязательный результат

  • Проверяемый вопрос или утверждение: при приближении графа микросервисов к насыщению хвостовая задержка растёт заметнее средней, а трассировка критического пути позволяет локализовать сервис, причинно влияющий на этот рост.
  • Технический результат: Развернуть сокращённый сквозной граф Hotel Reservation или Social Network, добавить генератор нагрузки, трассировку запросов и сбор метрик по каждому сервису.
  • Обязательное приращение команды: Организовать описанные серии ступенчатой нагрузки со сквозной трассировкой и метриками сервисов, локализовать узкое место и подтвердить его влияние контролируемым изменением ресурса. Оценивается собственная причинная проверка на сопоставимых сериях.
  • Эксперимент: Провести ступенчатую нагрузку от ненасыщенного режима до перегрузки не менее чем в трёх сериях. Сопоставить медиану, p95/p99, очереди и загрузку ресурсов; локализовать хотя бы одно узкое место и подтвердить причинность контролируемым изменением его ресурса.
  • Границы выводов: причинный анализ относится к выбранному сокращённому графу сервисов, нагрузке и локальным ограничениям ресурсов; он не воспроизводит хвостовые задержки полной производственной конфигурации DeathStarBench.
  • Ресурсный профиль: расширенно локально, Docker, CPU, желательно 16–32 ГБ памяти. Запасной вариант — оставить один опубликованный сервис и уменьшить число реплик, сохранив сквозной граф вызовов.

Содержательные направления

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

Возможное продолжение

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