La taille de ce droplet semble raisonnablement adaptée pour ce type d’importation, je ne m’attendrais donc pas à ce que UNICORN_WORKERS soit le principal facteur limitant ici.
Quelques observations :
- Arrêter Unicorn est probablement acceptable pour un conteneur dédié uniquement à l’importation ou à la préproduction, mais cela ne devrait pas accélérer massivement l’importateur lui-même.
- La désactivation des pièces jointes et des avatars devrait éliminer deux des étapes les plus lentes. Si vous n’obtenez toujours qu’environ 440 publications par minute, le goulot d’étranglement peut provenir des E/S de la base de données, du côté des requêtes MySQL de phpBB source, ou des attentes liées à Redis/PostgreSQL.
- Il vaut la peine de surveiller attentivement la ligne de journal suivante :
Exception while creating post 304683. Skipping.
Même si l’importation se poursuit, cela signifie qu’au moins cette publication a été ignorée. Si cela se produit à plusieurs reprises, la migration finale risque de manquer des publications.
La partie Redis semble indiquer un délai d’attente de 1 seconde du client Redis lors du verrouillage distribué de Discourse, pendant que PostCreator crée une publication. Je vérifierais si Redis est réellement surchargé ou si le délai d’attente est simplement trop agressif lors d’une longue importation.
Les vérifications utiles suivantes seraient :
free -h
df -h
iostat -xz 1
vmstat 1
redis-cli INFO memory
redis-cli INFO stats
redis-cli SLOWLOG GET 20
De plus, la base de données MySQL de phpBB est-elle locale sur le même droplet, ou est-elle lue via le réseau ? Étant donné que la pile d’appels itère à travers mysql2, une base de données source lente ou un disque lent peut maintenir l’utilisation du CPU basse pendant que l’importateur attend.
Au rythme actuel, avec 333 919 / 2 167 314 à environ 441 éléments par minute, il vous reste encore environ 69 heures, donc cela pourrait se terminer, mais je serais principalement inquiet de savoir si ces exceptions de délai d’attente Redis provoquent l’ignorance de publications.
Je déconseille fortement d’augmenter UNICORN_WORKERS. Lors d’une exécution dédiée à l’importation, Unicorn est largement sans importance. L’essentiel est que l’importation se poursuive mais ignore des publications, ce qui est le point que je soulignerais.