Wäre es möglich, den Parameter shm_size als Option in der app.yml zu konfigurieren? Ich bin heute auf diesen Fehler gestoßen, als ich versuchte, einen vacuum analyze durchzuführen:
ERROR: could not resize shared memory segment
Es wurde versucht, die Nutzung des gemeinsam genutzten Speichers auf 1 GB zu erhöhen, was fehlgeschlagen ist, da standardmäßig nur 512 MB zur Verfügung stehen. Dieser Parameter scheint im Startskript enthalten zu sein, aber es wäre wünschenswert, dies als Option (möglicherweise standardmäßig auskommentiert) in der .yml-Datei verfügbar zu machen.
Das hat leider nicht funktioniert, als ich es versucht habe. Ich denke, vielleicht muss der Container neu erstellt werden, um den Speicherplatz für den gemeinsam genutzten Speicher zu vergrößern? Ich musste den Wert in den fest codierten Bereichen des Startskripts ändern und dann den Container neu erstellen, damit die Änderung tatsächlich wirksam wurde.
Dies würde wahrscheinlich auch bei Updates/Neuerstellungen nicht erhalten bleiben – Sie müssten es jedes Mal manuell ändern.
Zuerst habe ich nur den Container gestoppt und dann den Startbefehl des Launchers mit diesem Parameter ausgeführt. Anschließend habe ich die Parameter --shm-size im Launcher-Skript selbst manuell bearbeitet und den Container neu erstellt. Danach wurde der Wert korrekt angepasst. Wenn du den Parameter bei der Neukompilierung des Containers über die Befehlszeile überschreibst, geht die Änderung dann nicht verloren, wenn du ein Update/Neuerstellen über die Schnittstelle /admin/upgrade durchführst? Deshalb dachte ich, es wäre am besten, dies als Feld in app.yml zu definieren – dann würde es auch bei Neukompilierungen und Code-Updates bestehen bleiben.
Dann sollten wir das beheben, aber die Lösung ist ein sehr, sehr komplexes Bash-Skript. Probieren Sie es gerne selbst aus.
Unsere Funktion zum Abrufen der Docker-Argumente sollte für die shm-Größe zuständig sein, Benutzer-Überschreibungen handhaben und einen Standardwert festlegen.
Einschränkung: Einige Benutzer haben geschrieben, dass du sicherstellen musst, dass der Docker-Dienst gestoppt ist, bevor du hostconfig.json änderst (sonst werden die Änderungen überschrieben). Ich habe dies jedoch nicht selbst getestet. Offensichtlich ist eine launcher-Lösung besser