30 lines
4.8 KiB
Markdown
30 lines
4.8 KiB
Markdown
# P07-A. DeathStarBench: хвостовая задержка
|
|||
|
|
|
||
|
|
- **Версия и дата проверки:** 1.0, 05.09.2026.
|
||
|
|
- **Статус:** готово к назначению.
|
||
|
|
|
||
|
|
## Статья и исходные материалы
|
||
|
|
|
||
|
|
- **Основная статья:** Yu Gan и соавт. — [An Open-Source Benchmark Suite for Microservices and Their Hardware-Software Implications for Cloud & Edge Systems](https://ygan397.github.io/publication/2019.asplos.deathstarbench/2019.asplos.deathstarbench.pdf). ASPLOS 2019.
|
||
|
|
- **Кратко о статье:** DeathStarBench — открытый набор сквозных приложений, представляющих типичные графы облачных и edge-микросервисов. Авторы показывают, что зависимости между сервисами, программный стек и совместное использование ресурсов создают узкие места, которые не видны в изолированном микротесте. В этом проекте исследуется распространение задержки по графу и поведение её хвостовых квантилей.
|
||
|
|
- **Почему результат актуален:** набор нагрузок продолжает использоваться как открытый стенд для исследований микросервисов. Конкретные зависимости отдельных приложений могут устаревать, поэтому перед проектом фиксируется собираемая версия. Выводы ограничиваются исследуемым графом сервисов и не распространяются на весь современный облачный стек.
|
||
|
|
- **Артефакты и данные:** [delimitrou/DeathStarBench](https://github.com/delimitrou/DeathStarBench) под Apache-2.0, с несколькими приложениями, контейнерами и генераторами нагрузки. Зафиксированные ревизии: `delimitrou/DeathStarBench@6ecb09706140` (Apache-2.0).
|
||
|
|
|
||
|
|
## Обязательный результат
|
||
|
|
|
||
|
|
- **Проверяемый вопрос или утверждение:** при приближении графа микросервисов к насыщению хвостовая задержка растёт заметнее средней, а трассировка критического пути позволяет локализовать сервис, причинно влияющий на этот рост.
|
||
|
|
- **Технический результат:** Развернуть сокращённый сквозной граф Hotel Reservation или Social Network, добавить генератор нагрузки, трассировку запросов и сбор метрик по каждому сервису.
|
||
|
|
- **Эксперимент:** Провести ступенчатую нагрузку от ненасыщенного режима до перегрузки не менее чем в трёх сериях. Сопоставить медиану, p95/p99, очереди и загрузку ресурсов; локализовать хотя бы одно узкое место и подтвердить причинность контролируемым изменением его ресурса.
|
||
|
|
- **Границы выводов:** причинный анализ относится к выбранному сокращённому графу сервисов, нагрузке и локальным ограничениям ресурсов; он не воспроизводит хвостовые задержки полной производственной конфигурации DeathStarBench.
|
||
|
|
- **Ресурсный профиль:** расширенно локально, Docker, CPU, желательно 16–32 ГБ памяти. Запасной вариант — оставить один опубликованный сервис и уменьшить число реплик, сохранив сквозной граф вызовов.
|
||
|
|
|
||
|
|
## Содержательные направления
|
||
|
|
|
||
|
|
- развёртывание и наблюдаемость.
|
||
|
|
- генератор нагрузки и контролируемые воздействия.
|
||
|
|
- анализ хвостов, причин и альтернативных конфигураций.
|
||
|
|
|
||
|
|
## Возможное продолжение
|
||
|
|
|
||
|
|
Сравнить две схемы размещения, ограничение одного ресурса, кэширование либо политику перегрузки и проверить перенос вывода между двумя графами вызовов.
|