Quella dimensione del droplet sembra ragionevolmente adeguata per questo tipo di importazione, quindi non mi aspetterei che UNICORN_WORKERS sia il principale collo di bottiglia in questo caso.
Alcune osservazioni:
- Fermare Unicorn è probabilmente accettabile per un contenitore dedicato solo all’importazione o di staging, ma è improbabile che acceleri in modo significativo l’importatore stesso.
- Disabilitare gli allegati e gli avatar dovrebbe rimuovere due delle operazioni più lente; quindi, se si ottengono comunque solo circa 440 post/min, il collo di bottiglia potrebbe essere l’I/O del database, il lato query MySQL della fonte phpBB o i tempi di attesa di Redis/PostgreSQL.
- Vale la pena monitorare attentamente questa riga di log:
Eccezione durante la creazione del post 304683. Salto.
Anche se l’importazione prosegue, ciò significa che almeno quel post è stato saltato. Se ciò si verifica ripetutamente, la migrazione finale potrebbe risultare priva di alcuni post.
La parte relativa a Redis sembra indicare un timeout del client Redis di 1 secondo durante il blocco mutex distribuito di Discourse mentre PostCreator sta creando un post. Verificherei se Redis è effettivamente sovraccarico o se il timeout è semplicemente troppo aggressivo durante un’importazione lunga.
I prossimi controlli utili sarebbero:
free -h
df -h
iostat -xz 1
vmstat 1
redis-cli INFO memory
redis-cli INFO stats
redis-cli SLOWLOG GET 20
Inoltre, il database MySQL di phpBB è locale sullo stesso droplet o viene letto tramite rete? Dato che lo stack trace sta iterando attraverso mysql2, un database sorgente lento o un disco lento possono mantenere l’utilizzo della CPU basso mentre l’importatore attende.
All’attuale velocità, da 333919 / 2167314 a circa 441 elementi/min, mancano ancora circa 69 ore, quindi potrebbe terminare, ma sarei principalmente preoccupato se quelle eccezioni di timeout di Redis stiano causando il salto di post.
Non suggerirei di aumentare UNICORN_WORKERS. In un’esecuzione dedicata solo all’importazione, Unicorn è per lo più irrilevante. L’aspetto importante è che l’importazione prosegue ma salta dei post, ed è proprio questo il punto su cui vorrei attirare l’attenzione.