Optimización de la velocidad de migración de PHPBB a Discourse

El tamaño de esa gota parece razonablemente sólido para este tipo de importación, por lo que no esperaría que UNICORN_WORKERS sea el principal limitante aquí.

Un par de observaciones:

  • Detener Unicorn probablemente esté bien para un contenedor de solo importación/entorno de pruebas, pero es poco probable que acelere significativamente al propio importador.
  • Al desactivar los adjuntos y los avatares se eliminan dos de las partes más lentas; por lo tanto, si aún solo obtienes ~440 publicaciones/min, el cuello de botella podría ser la E/S de la base de datos, el lado de la consulta MySQL de phpBB de origen, o las esperas de Redis/PostgreSQL.
  • Vale la pena observar con atención la siguiente línea del registro:

Exception while creating post 304683. Skipping.

Aunque la importación continúa, esto significa que al menos esa publicación fue omitida. Si esto ocurre repetidamente, la migración final podría carecer de publicaciones.

La parte de Redis parece ser un tiempo de espera del cliente de Redis de 1 segundo durante el bloqueo de mutex distribuido de Discourse mientras PostCreator crea una publicación. Te recomendaría verificar si Redis está realmente sobrecargado o si el tiempo de espera es simplemente demasiado agresivo durante una importación prolongada.

Los siguientes controles útiles serían:

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

Además, ¿la base de datos MySQL de phpBB está local en la misma gota o se lee a través de la red? Dado que el seguimiento de la pila itera a través de mysql2, una base de datos de origen lenta o un disco lento pueden mantener el uso de la CPU bajo mientras el importador espera.

Con la velocidad actual, de 333919 / 2167314 a aproximadamente 441 elementos/min, aún te quedan unas 69 horas, por lo que podría terminar, pero me preocuparía principalmente si esas excepciones de tiempo de espera de Redis están causando que se omitan publicaciones.

No te recomendaría aumentar UNICORN_WORKERS. En una ejecución de solo importación, Unicorn es mayormente irrelevante. Lo importante es que su importación continúa pero omite publicaciones, y eso es lo que señalaría.