Перейти к содержанию

Как работать с victoria-metrics

Как ограничить потребление CPU для victoria-metrics graphite/clickhouse?

Чтобы исправить проблему высокого потребления CPU, необходимо ограничить ресурсы по 2 CPU и 6 GB RAM на контейнер:

  1. Остановите все контейнеры с названиями вида: graphite* и victoria-metrics* (например, graphite2 и victoria-metrics2):

    systemctl stop onpremise-container-graphite1.service
    systemctl stop onpremise-container-victoria-metrics1.servic
    
  2. В docker-compose файлы для всех контейнеров вида graphite* и victoria-metrics* в:

    • /opt/mailOnPremise/dockerVolumes/graphite1/compose/main-compose.yaml

    • /opt/mailOnPremise/dockerVolumes/victoria-metrics1/compose/main-compose.yaml

    Добавьте:

    deploy:
      resources:
        limits:
          memory: 6144M
          cpus: '2.0'
    
    после
    logging:
      driver: none
    

    Внимание

    Значение в поле cpus обязательно должно быть в одинарных кавычках.

    Пример:

    version: '3.7'
    
    services:
      victoria-metrics1:
        container_name: victoria-metrics1
        image: 100.70.80.204:5000/mntonpremise/onpremise-docker/victoria-metrics:v1.76.1
        hostname: hypervisor1.qdit
        domainname: hypervisor1.qdit
        network_mode: host
        restart: "no"
        volumes:
        - type: bind
          source: /opt/mailOnPremise/dockerVolumes/victoria-metrics1/conf
          target: /etc/prometheus
        - type: bind
          source: /opt/mailOnPremise/dockerVolumes/victoria-metrics1/data
          target: /prometheus
        env_file:
        - /opt/mailOnPremise/dockerVolumes/victoria-metrics1/custom.env
        dns:
        - 172.20.4.129
        dns_search: qdit
        logging:
          driver: none
        deploy:
          resources:
            limits:
              memory: 6144M
              cpus: '2.0'
    
  3. Запустите остановленные контейнеры:

    systemctl start onpremise-mail.target
    
  4. Проверьте статусы контейнеров graphite1, victoria-metrics1 и подобных им:

    systemctl status onpremise-container-graphite1.service
    systemctl status onpremise-container-victoria-metrics1.service
    

Как задать retention policy для victoria-metrics?

  1. В файле /opt/mailOnPremise/dockerVolumes/victoria-metrics1/custom.env добавьте опцию:

    export RETENTIONPERIOD=1d
    
  2. Перезапустите сервис:

    systemctl restart onpremise-container-victoria-metrics1
    

В результате будет установлен интервал мерджа метрик в один день. Подробнее про retention policy: https://github.com/VictoriaMetrics/VictoriaMetrics?tab=readme-ov-file#retention.