Настройка лимитов потребления ресурсов
Для предотвращения перерасхода ресурсов стенда можно настроить лимиты потребления CPU и памяти для контейнеров. При превышении заданных ограничений срабатывает встроенный механизм Docker OOM Killer, который произведёт перезапуск соответствующих контейнеров ClickHouse, JDBC Bridge и сервисов мониторинга. Это позволяет защитить систему от неконтролируемого потребления ресурсов отдельными компонентами.
Настройка выполняется в файле v3/defaults.env – значения указываются в процентах от общего объёма доступных ресурсов. По умолчанию установлены следующие параметры:
CLICKHOUSE_CONTAINER_MEMORY_LIMIT_PERCENT=90
CLICKHOUSE_CPU_LIMIT_PERCENT=95
JDBC_BRIDGE_MEMORY_LIMIT_PERCENT=50
JDBC_BRIDGE_CPU_LIMIT_PERCENT=80
OTELCOL_MEMORY_LIMIT_PERCENT=20
OTELCOL_CPU_LIMIT_PERCENT=20
LOKI_MEMORY_LIMIT_PERCENT=20
LOKI_CPU_LIMIT_PERCENT=20
TEMPO_MEMORY_LIMIT_PERCENT=20
TEMPO_CPU_LIMIT_PERCENT=20
PROMTAIL_MEMORY_LIMIT_PERCENT=20
PROMTAIL_CPU_LIMIT_PERCENT=20
GRAFANA_MEMORY_LIMIT_PERCENT=20
GRAFANA_CPU_LIMIT_PERCENT=20
PROMETHEUS_MEMORY_LIMIT_PERCENT=20
PROMETHEUS_CPU_LIMIT_PERCENT=20
CADVISOR_MEMORY_LIMIT_PERCENT=20
CADVISOR_CPU_LIMIT_PERCENT=20
NODE_EXPORTER_MEMORY_LIMIT_PERCENT=20
NODE_EXPORTER_CPU_LIMIT_PERCENT=20 Особенность настройки ClickHouse
Лимит памяти контейнера ClickHouse (CLICKHOUSE_CONTAINER_MEMORY_LIMIT_PERCENT, по умолчанию 90% RAM на хосте) устанавливает предел потребления памяти контейнером, а параметр CLICKHOUSE_MEMORY_LIMIT_RATIO (по умолчанию 0,9, что соответствует 90% выделенной под контейнер памяти) указывает сколько максимально памяти из этого лимита будет потребляться в процессе работы самого ClickHouse. Таким образом контейнер никогда не будет перезапущен по причине OOM.
После изменения параметров в файле v3/defaults.env требуется перезапустить платформу, чтобы новые лимиты вступили в силу.
Нужна дополнительная помощь?