Neukalibrierung des Servers, welche Konfigurationen müssen geändert werden? - unicorn workers, Speicher usw.

TLDR: Gibt es eine Anleitung oder eine Liste empfohlener Konfigurationen, die bei der Skalierung eines Servers berücksichtigt werden sollten?

Wenn Sie Discourse zum ersten Mal auf einem Server installieren, gibt es einige Einstellungen, die automatisch vorgenommen werden.
Ein Vorteil, den die Cloud bietet, ist die einfache Änderung des Instanztyps auf einen anderen mit mehr/weniger CPUs und Arbeitsspeicher.
Soweit ich weiß, passen sich die automatischen Konfigurationen nicht automatisch an den neuen Server an (es wäre schön, eine Benachrichtigung im Admin-Dashboard zu haben, dass Ihre Discourse-Konfiguration nicht mit der Hardware übereinstimmt, auf der sie läuft).

Zum Beispiel habe ich diese Einstellungen aus der Datei app.yml in Betracht gezogen:

## Set db_shared_buffers auf maximal 25 % des Gesamtspeichers.
## wird automatisch vom Bootstrap basierend auf dem erkannten RAM gesetzt, oder Sie können ihn überschreiben
db_shared_buffers: "4096MB"

## kann die Sortierleistung verbessern, erhöht aber den Speicherverbrauch pro Verbindung
#db_work_mem: "40MB"

## Wie viele gleichzeitige Webanfragen werden unterstützt? Hängt von Speicher und CPU-Kernen ab.
## wird automatisch vom Bootstrap basierend auf den erkannten CPUs gesetzt, oder Sie können ihn überschreiben
UNICORN_WORKERS: 4

Das würde voraussetzen, dass Discourse das Einzige ist, was auf dem Server läuft, was nicht immer der Fall ist.

Ich gebe normalerweise zwei unicorn_workers pro Kern und 25 % des Systemspeichers als db_shared_buffers an.

3 „Gefällt mir“

Wenn Sie discourse-setup ausführen, werden die vorgeschlagenen Größen geändert. Aber Sie schauen sich die Vorschläge an, also können Sie es einfach selbst machen.

2 „Gefällt mir“

Hallo. Es ist Zeit, die Serverfunktionen zu erweitern. Um die Prozessor- und RAM-Eigenschaften des Servers zu ändern, muss ich ihn herunterfahren. Gibt es etwas Wichtiges, das ich tun sollte, bevor ich den Server verkleinere? Ich möchte, dass alles an seinem Platz ist und funktioniert, wenn ich zurückkomme.

Ich würde ein vollständiges Backup und eine Kopie der Datei app.yml herunterladen, falls sie nicht wiederhergestellt wird.

2 „Gefällt mir“

Ist es möglich, db_share_buffers ohne Neuerstellung zu ändern?

cd /var/discourse
./launcher destroy app
./launcher start app