From 0f73c8319e40e45da602a439065dbc1857756c19 Mon Sep 17 00:00:00 2001 From: vladp Date: Tue, 30 Dec 2025 12:08:23 +0700 Subject: [PATCH] add ram size --- docker-compose.yaml | 71 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) diff --git a/docker-compose.yaml b/docker-compose.yaml index 6136ac0..f1e3e94 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -4,6 +4,12 @@ services: storage: image: alpine:latest container_name: file-storage + deploy: + resources: + limits: + memory: 128M + reservations: + memory: 64M networks: - app-network volumes: @@ -14,10 +20,20 @@ services: db: image: postgres:17 restart: always + deploy: + resources: + limits: + cpus: '2.0' + memory: 2G + reservations: + cpus: '1.0' + memory: 1G environment: POSTGRES_DB: no_copy_ POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres + POSTGRES_SHARED_BUFFERS: 512MB + POSTGRES_EFFECTIVE_CACHE_SIZE: 1536MB ports: - "54320:5432" volumes: @@ -31,6 +47,14 @@ services: app: build: . container_name: app-backend + deploy: + resources: + limits: + cpus: '1.5' + memory: 1G + reservations: + cpus: '0.5' + memory: 512M environment: FILE_STORAGE_PATH: /data/uploads MAX_FILE_SIZE: 10737418240 @@ -57,6 +81,13 @@ services: grafana: image: grafana/grafana:10.3.1 container_name: grafana + deploy: + resources: + limits: + cpus: '0.5' + memory: 512M + reservations: + memory: 256M ports: - "3000:3000" depends_on: @@ -73,6 +104,8 @@ services: GF_SECURITY_ADMIN_USER: admin GF_SECURITY_ADMIN_PASSWORD: admin GF_METRICS_ENABLED: "true" + GF_DATABASE_MAX_IDLE_CONN: "2" + GF_DATABASE_MAX_OPEN_CONN: "10" volumes: - ./infrastructure/grafana/provisioning:/etc/grafana/provisioning - ./infrastructure/grafana/dashboards:/var/lib/grafana/dashboards @@ -87,10 +120,23 @@ services: prometheus: image: prom/prometheus:latest container_name: prometheus + deploy: # ← ДОБАВЛЕНО + resources: + limits: + cpus: '0.5' + memory: 1G + reservations: + memory: 512M ports: - "9090:9090" volumes: - ./infrastructure/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml + - prometheus_data:/prometheus + command: + - '--config.file=/etc/prometheus/prometheus.yml' + - '--storage.tsdb.path=/prometheus' + - '--storage.tsdb.retention.time=15d' # Удерживать 15 дней + - '--web.enable-lifecycle' healthcheck: test: [ "CMD", "wget", "--spider", "http://localhost:9090/-/healthy" ] interval: 10s @@ -102,10 +148,20 @@ services: loki: image: grafana/loki:2.9.2 container_name: loki + deploy: # ← ДОБАВЛЕНО + resources: + limits: + cpus: '1.0' + memory: 2G + reservations: + memory: 1G ports: - "3100:3100" volumes: - ./infrastructure/loki/loki-config.yaml:/etc/loki/loki-config.yaml:ro + - loki_data:/loki + command: + - -config.file=/etc/loki/loki-config.yaml healthcheck: test: [ "CMD", "wget", "--spider", "-q", "http://localhost:3100/ready" ] interval: 10s @@ -117,6 +173,13 @@ services: tempo: image: grafana/tempo:2.4.1 container_name: tempo + deploy: # ← ДОБАВЛЕНО + resources: + limits: + cpus: '0.5' + memory: 512M + reservations: + memory: 256M command: [ "-config.file=/etc/tempo/tempo.yaml" ] volumes: - ./infrastructure/tempo/tempo.yaml:/etc/tempo/tempo.yaml @@ -129,6 +192,13 @@ services: alloy: image: grafana/alloy:latest container_name: alloy + deploy: + resources: + limits: + cpus: '0.5' + memory: 256M + reservations: + memory: 128M user: root ports: - "9080:9080" @@ -158,6 +228,7 @@ volumes: loki_index: loki_rules: uploads_data: + prometheus_data: networks: app-network: