PHPBB zu Discourse Migration Geschwindigkeitsoptimierung

Diese Droplet-Größe erscheint für diese Art von Import angemessen robust, daher würde ich nicht erwarten, dass UNICORN_WORKERS hier der Hauptbegrenzungsfaktor ist.

Ein paar Beobachtungen:

  • Das Stoppen von Unicorn ist für einen reinen Import-/Staging-Container wahrscheinlich in Ordnung, wird den Import selbst jedoch wahrscheinlich nicht erheblich beschleunigen.
  • Da Anhänge und Avatare deaktiviert sind, entfallen zwei der langsameren Teile. Wenn Sie dennoch nur etwa 440 Beiträge pro Minute erhalten, könnte die Engpassstelle bei der Datenbank-E/A, der phpBB-MySQL-Abfrageseite der Quelle oder bei Redis/PostgreSQL-Wartezeiten liegen.
  • Die folgende Logzeile sollte sorgfältig beobachtet werden:

Exception while creating post 304683. Skipping.

Auch wenn der Import weiterläuft, bedeutet dies, dass mindestens dieser Beitrag übersprungen wurde. Wenn dies wiederholt vorkommt, fehlen in der endgültigen Migration möglicherweise Beiträge.

Der Redis-Teil deutet auf ein Redis-Client-Timeout von 1 Sekunde während des verteilten Mutex-Locks von Discourse hin, während PostCreator einen Beitrag erstellt. Ich würde prüfen, ob Redis tatsächlich überlastet ist oder ob das Timeout während eines langen Imports einfach zu aggressiv eingestellt ist.

Nützliche nächste Checks wären:

free -h
df -h
iostat -xz 1
vmstat 1
redis-cli INFO memory
redis-cli INFO stats
redis-cli SLOWLOG GET 20

Ist die phpBB-MySQL-Datenbank lokal auf derselben Droplet oder wird sie über das Netzwerk gelesen? Da der Stack-Trace durch mysql2 iteriert, kann eine langsame Quelldatenbank oder langsame Festplatte die CPU-Auslastung niedrig halten, während der Importeur wartet.

Bei der aktuellen Rate von 333.919 / 2.167.314 bei etwa 441 Einträgen pro Minute bleiben Ihnen noch ungefähr 69 Stunden, sodass der Import möglicherweise abgeschlossen wird. Meine Hauptsorge ist jedoch, ob diese Redis-Timeout-Ausnahmen dazu führen, dass Beiträge übersprungen werden.

Ich würde nicht empfehlen, UNICORN_WORKERS zu erhöhen. Bei einem reinen Importlauf ist Unicorn weitgehend irrelevant. Wichtig ist, dass der Import zwar weiterläuft, aber Beiträge überspringt – das ist der Punkt, den ich hervorheben würde.