Plötzlicher Anstieg der Speichernutzung, der nicht sinkt

Vor etwas mehr als einer Woche habe ich mir das DO-Diagramm für den Speicherverbrauch angesehen und war ziemlich überrascht:

Der Wert ist seit über einem Jahr stabil. Ich habe den Container gestoppt/neu gestartet, und der Verbrauch ist wieder gesunken, aber in den letzten Stunden ist er wieder auf das vorherige Niveau gestiegen.

Was ist die Ursache? top und ps zeigen mir, dass die Hauptschuldigen PostgreSQL-Prozesse sind. Hier sind die Informationen von free:

$ free -mh
              total        used        free      shared  buff/cache   available
Mem:          7.8Gi       2.5Gi       142Mi       2.3Gi       5.1Gi       2.6Gi

Ich kann sogar nicht mehr über die DO-Konsole auf den Droplet zugreifen. Er stürzt wegen OOM (Out of Memory) ab. Zum Glück habe ich SSH-Keys installiert und kann von meinem privaten Laptop aus zugreifen, sodass ich im Moment noch auf den Droplet zugreifen kann.

Was soll ich tun? Ich habe ein knappes Budget, daher ist das Ändern der Größe des Droplets meine letzte Option. Ich frage mich, ob es noch andere Möglichkeiten gibt. Das scheint völlig aus dem Nichts zu kommen. Ich verwende Version 2.7.0.beta5.

Was hat sich kürzlich geändert, wenn überhaupt? Haben Sie ein Upgrade durchgeführt?

Der einzige vertikale Sprung in meinen Diagrammen der letzten 14 Tage war ebenfalls am 11. Mai, aber weniger dramatisch: von 78 % auf 89 %. Vielleicht haben wir damals ein Upgrade durchgeführt?

Es scheint host-bezogen zu sein, denn bei mir ist der Speicherverbrauch gesunken. Das Version-Update auf beta9 wurde am 10. hinzugefügt, also habe ich wahrscheinlich zu diesem Zeitpunkt einen Rebuild durchgeführt (und ein neues Image heruntergeladen, wie der Festplattennutzungsverlauf zeigt). Ich erinnere mich nicht daran, den Host aktualisiert zu haben, aber es könnte sein, dass ich es getan habe.


Hast du keinen Swap-Speicher?

Nein, ich betreibe seit einiger Zeit die Version 2.7beta5. Wir haben seit Langem nichts mehr geändert.

Der Grund, warum ich nicht auf der neuesten Version bin, liegt daran, dass nach unserem letzten Upgrade Bedenken meines Frontend-Entwicklers bestanden, da dieses einige brechende Änderungen an seinen Styling-Komponenten eingeführt hatte (ich bin nur ein Systemadministrator und habe keine Ahnung von solchen Dingen). Ich glaube, diese Probleme wurden in Discourse mittlerweile behoben, aber wir warteten auf die nächste Minor-Version, um das Upgrade durchzuführen.

Was könnte dies auf dem Host verursachen?

Das Ändern der Größe des Droplets verdoppelt unsere Rechnung – ich möchte das wirklich nicht tun, aber es könnte die einfachste Lösung sein.

Swap ist der Standardwert, ich bin mir nicht sicher.

:thinking: und was sagt /sidekiq?

Wenn Sie Swap hinzufügen, vermeiden Sie OOM-Fehler. Sie möchten keine OOM-Fehler und auch keine starke Paging-Aktivität, da sonst der Anstieg der Speichernutzung relevant sein könnte oder auch nicht. (Das könnte interessant sein, ist aber eine andere Angelegenheit.)

Ich empfehle, folgenden Befehl auszuführen:
vmstat 5 5
oder einen ähnlichen, um zu sehen, wie die Paging-Aktivität aussieht.

Außerdem ist
free -h
nützlicher als
free -mh,
da es sehr wohl darauf ankommt, wie viel Swap noch verfügbar ist.