Erhöhen Sie die Speicherkapazität des CODE-Containers ohne zu raten

Um einem Collabora Online CODE-Container mehr Arbeitsspeicher zuzuweisen, erhöhen Sie das Docker-Limit in der Konfiguration, mit der er erstellt wurde. Erstellen Sie den Container anschließend neu und überprüfen Sie das effektive Limit mit ` docker run` docker inspectoder ` docker statsdocker run`. Die Erhöhung einer Anwendungseinstellung erhöht nicht das Containerlimit von Docker, und der Host oder die virtuelle Docker Desktop-Maschine muss über ausreichend Arbeitsspeicher verfügen, um ein höheres Limit zu unterstützen.

Beispiel: Riley verwaltet eine Docker Compose-Bereitstellung auf einem einzelnen Host. Angenommen, docker statsdie Speicherkapazität beträgt 2 GiB und die Auslastung liegt nahe an diesem Wert, während mehrere Dokumente geöffnet sind. Riley erwägt eine Obergrenze von 4 GiB. Diese Zahlen dienen lediglich als Beispiele und stellen keine Empfehlung zur Dimensionierung von Collabora, keine Leistungsaussage und kein Testergebnis dar. Ihre endgültige Speichergrenze sollte sich aus der beobachteten Auslastung und der Hostkapazität ergeben.

1. Prüfen Sie, ob der Behälter tatsächlich auf den Deckel trifft.

Führen Sie diese Befehle auf dem Docker-Host aus und ersetzen Sie dabei ` collabora<containername>` durch den tatsächlichen Containernamen:

docker stats --no-stream collabora
docker inspect --format 'Memory={{.HostConfig.Memory}} OOMKilled={{.State.OOMKilled}}' collabora

docker statsZeigt die aktuelle Nutzung und das Containerlimit an. Die Ausgabe von `inspect` gibt das konfigurierte Speicherlimit in Bytes an und ob Docker den Container als aufgrund von Speichermangel (OOM) beendet protokolliert. Ein Wert von 0 0bedeutet, dass Docker kein explizites Limit für diesen Container festgelegt hat; dies bedeutet nicht, dass der Rechner über unbegrenzten Arbeitsspeicher verfügt. Ein hoher Wert allein beweist keinen Speichermangel. Vergleichen Sie ihn daher mit dem Neustartverlauf, den Protokollen und den Zeitpunkten, zu denen Benutzer Fehler festgestellt haben.

Terminaldarstellung der Docker-Statistiken, die einen hypothetischen Collabora-Container zeigt, der 1,8 GiB unter einem Limit von 2 GiB belegt, als Beispiel gekennzeichnet.
Hypothetisches Diagnosebeispiel: Der CODE-Container nähert sich seiner konfigurierten Obergrenze von 2 GiB.

Bevor Sie das Limit erhöhen, prüfen Sie, wie viel RAM für das Betriebssystem und andere Dienste noch verfügbar ist. Docker empfiehlt, den Anwendungsbedarf zu testen und Container auf Hosts mit ausreichenden Ressourcen auszuführen. Prüfen Sie bei Docker Desktop zusätzlich unter Einstellungen > Ressourcen : Der der Docker-VM zugewiesene Speicher ist ein separates Limit, das von allen Containern gemeinsam genutzt wird. Eine Erhöhung des Limits von CODE über diese Zuweisung hinaus schafft keinen zusätzlichen physischen Speicher; siehe die Ressourceneinstellungen von Docker Desktop .

2. Ändern Sie das Compose-Dienstlimit.

Bearbeiten Sie den vorhandenen CODE-Dienst in Ihrer Compose-Datei. Behalten Sie das aktuelle Image-Tag, die Ports, die Umgebung, die Volumes, die Netzwerke und die Neustartrichtlinie bei; fügen Sie lediglich die Speichereinstellung hinzu oder aktualisieren Sie diese. Für Rileys hypothetisches 4-GiB-Beispiel:

services:
  collabora:
    image: collabora/code:your-current-tag
    mem_limit: 4g
    # Keep the service’s existing settings below
Illustration des Compose-YAML-Editors, die mem_limit: 4g unter einem Collabora-Dienst mithilfe des vorhandenen Image-Tags hervorhebt.
Compose-Beispiel: Festlegen der Speicherbegrenzung auf Dienstebene unter Beibehaltung des bereitgestellten CODE-Image-Tags.

Dieses Beispiel verwendet das offizielle CODE-Docker-Image von Collabora . Behalten Sie das bereits von Ihrer Bereitstellung verwendete Tag bei. mem_limitEs handelt sich um eine feste Obergrenze, nicht um eine Reservierung: Docker erlaubt dem Container, bis zu dieser Menge an Arbeitsspeicher zu verwenden, aber die Einstellung reserviert nicht so viel RAM auf dem Host. Die Docker Compose-Dienstreferenz definiert mem_limitdiese Obergrenze und besagt, dass sie mit der vorherigen übereinstimmen muss, deploy.resources.limits.memorywenn beide vorhanden sind. Wenn Ihre Bereitstellung einen Orchestrator oder eine plattformverwaltete Compose-Datei verwendet, nutzen Sie das unterstützte Ressourcenfeld dieser Plattform und achten Sie darauf, dass doppelte Grenzwerte konsistent sind.

Wenn Sie CODE direkt mit `docker run` gestartet haben docker run, erstellen Sie es mit dem ursprünglichen Befehl neu --memory=4gund behalten Sie alle aktuellen Optionen bei. Für schnelle Laufzeitänderungen an einem bestehenden Linux-Container unterstützt Docker auch `docker run` docker update --memory 4g <container_name>. Behandeln Sie die Compose-Datei oder den ursprünglichen Startbefehl als maßgebliche Quelle, damit eine spätere Aktualisierung die alte Konfiguration nicht wiederherstellt. Weitere Informationen finden Sie in der Docker-Container-Update-Referenz .

3. Erstellen Sie den Code neu, damit das gespeicherte Limit wirksam wird.

Überprüfen Sie im Verzeichnis, das die aktive Compose-Datei enthält, die zusammengeführte Konfiguration und erstellen Sie anschließend nur den CODE-Dienst neu:

docker compose config
docker compose up -d --no-deps --force-recreate collabora

Verwenden Sie den Dienstschlüssel aus Ihrer Datei anstelle von collabora. Überprüfen Sie die gerenderte Konfiguration auf das neue Limit, bevor Sie es anwenden. Das Neuerstellen von CODE unterbricht Bearbeitungssitzungen, die von diesem Container abhängen, kurzzeitig. Planen Sie die Änderung daher so, dass eine kurze Dienstunterbrechung akzeptabel ist. Entfernen Sie keine Volumes und führen Sie nicht aus docker compose down -v; diese Operationen sind für eine Änderung des Speicherlimits unnötig und können persistente Daten anderer Dienste löschen.

Terminalillustration, die docker compose config gefolgt von docker compose up ohne Abhängigkeiten und erzwungener Neuerstellung des Collabora-Dienstes zeigt.
Wenden Sie die bearbeitete Compose-Konfiguration an und erstellen Sie nur den CODE-Dienst neu.

4. Überprüfen Sie die neue Kappe und prüfen Sie das Verhalten unter Last.

Nachdem der Dienst zurückgekehrt ist, überprüfen Sie den tatsächlichen Container – nicht nur die YAML-Datei:

docker inspect --format 'Memory={{.HostConfig.Memory}} OOMKilled={{.State.OOMKilled}}' collabora
docker stats --no-stream collabora

Für den Beispielwert 4gsollte die Ausgabe von `inspect` etwa 4 GiB in Bytes darstellen und docker statsein Limit nahe 4 GiB anzeigen. Die Abbildung unten zeigt eine Beispielausgabe, die nur zur Veranschaulichung dient. Beobachten Sie anschließend den Code beim Öffnen der Dokumenttypen und die ungefähre Anzahl gleichzeitiger Sitzungen, die für Ihre Bereitstellung relevant sind. Stellen Sie sicher, dass der Container weiterhin ausgeführt wird, keine für Benutzer sichtbaren Fehler mehr auftreten und der Host genügend Speicher für seine anderen Prozesse freihält.

Terminaldarstellung von Docker inspect, das eine Speicherbegrenzung von 4294967296 Byte meldet, und docker stats, das ein Limit von 4 GiB anzeigt, gekennzeichnet als erwartete Beispielausgabe und nicht als Test.
Erwartetes Verifizierungsmuster für die fiktive 4-GiB-Konfiguration; die angezeigten Werte sind eine Beispielausgabe, keine gemessene Bereitstellung.

Wenn das Problem weiterhin besteht

Wenn die neue Speicherbegrenzung vorhanden ist, CODE aber weiterhin neu startet, überprüfen Sie docker inspectden Status docker logs, die Kernel- oder Docker-Ereignisse des Hosts auf einen Speichermangel. Bleibt der Container fehlerfrei, löst die Dokumentenverarbeitung aber weiterhin Aufräumarbeiten aus, ist Docker möglicherweise nicht der aktive Flaschenhals. coolwsdDie Speicherverwaltung von Collabora ist unabhängig von der Docker-Cgroup-Beschränkung; die serverseitigen Steuerungseinstellungen sind in der Projektkonfigurationsvorlage dokumentiert. Überprüfen Sie die Konfiguration Ihrer installierten CODE-Version, bevor Sie Änderungen vornehmen .

Beheben Sie Unsicherheiten nicht, indem Sie dem Container unbegrenzten Speicher zuweisen oder den Speicherkiller deaktivieren. Docker warnt davor, dass ein unbegrenzter Container zur Erschöpfung des Hostspeichers beitragen und andere Dienste beeinträchtigen kann. Wenn der Host keinen Sicherheitsspielraum mehr hat, besteht die Lösung darin, die Kapazität des Hosts oder der Docker-VM zu erhöhen, die gleichzeitige Arbeitslast zu reduzieren oder die Aufgaben zu verteilen – und nicht darin, die Speichergrenze über den verfügbaren RAM hinaus zu erhöhen.

Einen Kommentar hinterlassen

Erhöhen Sie die Speicherkapazität des CODE-Containers ohne zu raten

Erhöhen Sie die Speicherkapazität des CODE-Containers ohne zu raten

Prüfen Sie, ob Docker den Collabora-CODE begrenzt, erhöhen Sie das Compose-Speicherlimit sicher und bestätigen Sie, dass der laufende Container das neue Limit erhalten hat.

Collabora CODE-Symbolleisten anpassen, ohne den Quellcode zu bearbeiten

Collabora CODE-Symbolleisten anpassen, ohne den Quellcode zu bearbeiten

Vereinfachen Sie Collabora CODE mit dem Kompakt- oder Tabbed-Modus und den WOPI PostMessage-Steuerelementen, um ausgewählte Schaltflächen, Befehle und Registerkarten sicher auszublenden.

Collabora-Code hinter Nginx mit TLS-Terminierung ausführen

Collabora-Code hinter Nginx mit TLS-Terminierung ausführen

Setzen Sie Nginx für HTTPS in einem Collabora CODE-Container ein, leiten Sie die Bearbeitung von WebSockets korrekt weiter und überprüfen Sie den öffentlichen Endpunkt, ohne Port 9980 freizugeben.

Text sichtbar halten, wenn die Collabora Mobile-Tastatur geöffnet wird

Text sichtbar halten, wenn die Collabora Mobile-Tastatur geöffnet wird

Fehlerbehebung bei einem Problem, bei dem die Tastatur eines mobilen Browsers den Text in Collabora Online verdeckt, mit schnellen Problemumgehungen und separaten Prüfungen für Browser, eingebettete WebViews und Hostseiten.

Unerwünschte Ausdrucke und Downloads in ONLYOFFICE stoppen

Unerwünschte Ausdrucke und Downloads in ONLYOFFICE stoppen

Legen Sie Druck- und Downloadlimits für ONLYOFFICE-Links, Raummitglieder oder Docs-API-Sitzungen fest und überprüfen Sie anschließend die Einschränkungen anhand eines Empfängerkontos.

Planen Sie zuverlässige Backups für Ihren ONLYOFFICE-Arbeitsbereich

Planen Sie zuverlässige Backups für Ihren ONLYOFFICE-Arbeitsbereich

Legen Sie in ONLYOFFICE Workspace ein Sicherungsziel, einen Zeitplan, die E-Mail-Abdeckung und eine Aufbewahrungsfrist fest und überprüfen Sie anschließend, ob das Archiv zur Wiederherstellung bereit ist.

ONLYOFFICE Docs Enterprise mit der offiziellen Compose-Datei bereitstellen

ONLYOFFICE Docs Enterprise mit der offiziellen Compose-Datei bereitstellen

Starten Sie den Enterprise Docker Compose Stack, speichern Sie dessen Lizenz und Daten, konfigurieren Sie JWT sicher und vergewissern Sie sich, dass die Editoren zur Integration bereit sind.

Bereinigen Sie Tabellenkalkulationstext mit einem wiederverwendbaren ONLYOFFICE-Makro.

Bereinigen Sie Tabellenkalkulationstext mit einem wiederverwendbaren ONLYOFFICE-Makro.

Verwenden Sie ein ONLYOFFICE JavaScript-Makro, um nicht druckbare Zeichen zu entfernen und überflüssige Leerzeichen aus einem definierten Tabellenbereich zu kürzen, und zwar mit einem sicheren Überprüfungsworkflow.

Ändern des Standardspeicherorts im ONLYOFFICE-Arbeitsbereich

Ändern des Standardspeicherorts im ONLYOFFICE-Arbeitsbereich

Verschieben Sie Portaldaten vom Standard-Festplattenspeicher zu einem unterstützten Cloud-Speicheranbieter oder verlagern Sie Docker-Daten sicher, indem Sie die Zuordnung des Host-Volumes ändern.

ONLYOFFICE Document Server vollständig von Linux entfernen

ONLYOFFICE Document Server vollständig von Linux entfernen

Ermitteln Sie, ob Document Server ein Linux-Paket oder Docker verwendet, entfernen Sie nur dessen Komponenten und prüfen Sie die verbleibenden Daten, ohne versehentlich gemeinsam genutzte Dienste zu löschen.