Зафиксированы очередь job, семантика метрик, лимиты бандла и исходящих запросов, а также чеклист продакшена для пула соединений. Co-authored-by: Cursor <cursoragent@cursor.com>
18 lines
4.0 KiB
Markdown
18 lines
4.0 KiB
Markdown
# Ресурсы и данные Docker
|
||
|
||
Этот файл сопровождает профили в `deploy/compose/`. Текущие значения `deploy.resources.limits` — верхние границы, а не измеренное потребление. Сумма лимитов `microvps-full` с edge и без NATS — 984M. Её нельзя считать подтверждением пригодности для VPS с 1 ГиБ RAM: нужны измерения ОС, Docker, BIRD и пиков refresh/apply. Лимиты BIRD и agent до таких измерений не снижены.
|
||
|
||
## Дополнительный NATS
|
||
|
||
Во всех основных Compose-вариантах NATS запускается только через `--profile nats` (или `COMPOSE_PROFILES=nats` для standalone stack). В коде `EVOBGP_BROKER_URL` только записывается в лог: внутренняя очередь не использует NATS. Перед отключением NATS на существующем хосте проверьте внешних клиентов порта 4222. Профиль не удаляет данные NATS и не меняет BIRD, WireGuard, agent или их тома.
|
||
|
||
## Данные Prometheus
|
||
|
||
Prometheus монтирует named volume `prometheus_data` в `/prometheus`. Retention по времени: 7 дней для `microvps-full`/standalone и 15 дней для `reference`; дополнительный предел по размеру задаёт `EVOBGP_PROMETHEUS_RETENTION_SIZE` (по умолчанию `2GB`). Это предел данных TSDB, а не строгий предел диска процесса: WAL и head block требуют отдельного запаса. Для самого маленького хоста сначала измерьте прирост диска и число серий, затем установите размер под доступную ёмкость.
|
||
|
||
**Обновление существующего стека:** прежний образ Prometheus мог хранить историю в анонимном Docker volume. Простое пересоздание контейнера с новым named volume покажет пустую историю. До `up` найдите текущий mount через `docker inspect <prometheus-container>`: у записи с `Destination=/prometheus` сохраните `Name`/`Source` и сделайте резервную копию. Для файлового копирования сначала остановите Prometheus либо используйте его поддерживаемый snapshot API. Перенесите содержимое старого тома в новый том с сохранением прав владельца; фактическое имя нового тома содержит префикс Compose project (проверьте через `docker volume ls` и `docker inspect`). Можно осознанно начать новую историю после проверки бэкапа. Проверьте запросы Prometheus до и после recreate. Не запускайте `docker compose down -v`: это удаляет также PostgreSQL, BIRD и другие тома проекта. В production перенос выполняйте отдельно от обновления BIRD/agent.
|
||
|
||
## Проверка эффекта
|
||
|
||
На одном оборудовании и одинаковом наборе маршрутов сравните `docker compose config`, `docker inspect` (фактические лимиты и mount), `docker stats`, `docker system df -v`, размер логов за сутки, cold/warm build и pull. После изменения проверьте отсутствие OOM/restarts и BGP flaps, совпадение prefix/community, работу apply/rollback и latency API. Локальная среда разработки без Docker не подтверждает экономию RAM или диска.
|