Site icon bintorosoft.com

Resource Limits setzen: CPU und RAM für Container begrenzen

Close up of computer web page code inside of html file. Big data and Internet of things trend. Application web source code on monitor.

Das Setzen von Resource Limits in Docker Compose ist ein essenzieller Bestandteil der Container-Orchestrierung, um die Stabilität von Systemen zu gewährleisten und Ressourcen fair unter den Containern zu verteilen. Dabei können CPU, RAM und andere Ressourcen für einzelne Container begrenzt werden, um Überlastungen zu vermeiden. In diesem Tutorial wird gezeigt, wie man Resource Limits für Container konfiguriert und welche Best Practices dabei zu beachten sind.

Grundlagen von Resource Limits

Docker erlaubt die Beschränkung von CPU und RAM für jeden Container. Dies verhindert, dass ein einzelner Container das gesamte Host-System beansprucht und andere Dienste beeinträchtigt. Die Limits können in Docker Compose direkt im Service definiert werden.

Syntax in Docker Compose

In Docker Compose werden Ressourcen unter deploy.resources.limits und deploy.resources.reservations definiert.

services:
  myservice:
    image: myorg/service:latest
    deploy:
      resources:
        limits:
          cpus: '0.5'
          memory: 512M
        reservations:
          cpus: '0.25'
          memory: 256M

Beispiel: Webservice mit CPU- und Memory-Limits

services:
  web:
    image: nginx:latest
    container_name: web
    ports:
      - "80:80"
    deploy:
      resources:
        limits:
          cpus: '1.0'
          memory: 1024M
        reservations:
          cpus: '0.5'
          memory: 512M

Beispiel: Datenbank mit Limits und Swap-Beschränkung

services:
  db:
    image: postgres:16
    container_name: db
    environment:
      POSTGRES_USER: appuser
      POSTGRES_PASSWORD: securepassword
      POSTGRES_DB: appdb
    deploy:
      resources:
        limits:
          cpus: '2.0'
          memory: 2G
        reservations:
          cpus: '1.0'
          memory: 1G
    mem_swap_limit: 2G
    volumes:
      - db_data:/var/lib/postgresql/data

Best Practices

Stack starten und Limits überprüfen

Stack starten:

docker-compose up -d

Ressourcennutzung überwachen:

docker stats
docker inspect myservice | grep -i -A 5 'Resources'

Updatefähigkeit

Limits bleiben auch nach Updates bestehen. Neue Images können per Pull aktualisiert werden, während die Ressourcenbeschränkungen aus der Compose-Datei weiterhin greifen.

docker-compose pull
docker-compose up -d

Zusammenfassung

Das Setzen von CPU- und RAM-Limits in Docker Compose ist essenziell, um Container stabil zu betreiben und Host-Systeme vor Überlastung zu schützen. In Kombination mit persistenten Volumes, Netzwerken, Healthchecks und Versionierung der Images entsteht eine robuste und wartbare Umgebung für Microservices, Datenbanken oder Webapplikationen. Monitoring und regelmäßige Anpassung der Limits sichern die langfristige Stabilität und Performance der Container-Infrastruktur.

Konfiguriere Cisco Router & Switches und liefere ein Packet-Tracer-Lab/GNS3

Ich biete professionelle Unterstützung im Bereich Netzwerkkonfiguration und Network Automation für private Anforderungen, Studienprojekte, Lernlabore, kleine Unternehmen sowie technische Projekte. Ich unterstütze Sie bei der Konfiguration von Routern und Switches, der Erstellung praxisnaher Topologien in Cisco Packet Tracer, dem Aufbau und Troubleshooting von GNS3- und EVE-NG-Labs sowie bei der Automatisierung von Netzwerkaufgaben mit Netmiko, Paramiko, NAPALM und Ansible. Kontaktieren Sie mich jetzt – klicken Sie hier.

Meine Leistungen umfassen:

Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.

Exit mobile version