Se ho un server con 1 core, quanti puma worker, thread e quale dimensione del pool di database è appropriata?Worker, Threads & Pool size usando Puma
Qual è il pollice generale qui?
Se ho un server con 1 core, quanti puma worker, thread e quale dimensione del pool di database è appropriata?Worker, Threads & Pool size usando Puma
Qual è il pollice generale qui?
Non è una risposta facile.
Le due principali fonti di informazione sono:
Purtroppo sono inconsistenti soprattutto perché heroku ha diverse metriche e termini di implementazione.
così ho finito seguendo le linee guida del repository puma che dice:
Quindi il numero di thread è principalmente un'operazione di prova e controllo.
Le linee guida 'One worker per core' vengono lanciate molto, ma è sostanzialmente l'opposto di ciò che dice Heroku (indicano che la RAM è l'unico fattore limitante per i lavoratori e suggerisce che i thread dovrebbero essere collegati al processore disponibile). Qualcuno ha ancora dato l'ultima parola su questo? La versione di Heroku ha più senso per me, intuitivamente. – robomc
A quanto ho capito, il vero vantaggio dei lavoratori con Puma è il parallelismo, dal momento che sono processi separati di ruby. Se hai solo 1 core, non c'è davvero alcun motivo per utilizzare più di 1 worker, poiché non possono essere eseguiti in parallelo. Detto questo, Heroku potrebbe aver scoperto alcuni altri miglioramenti dell'efficienza nell'utilizzo di più lavoratori anche in un singolo ambiente core. –
Hai perfettamente ragione e l'ho inserito come parte delle linee guida: Un lavoratore per core;) – tommasop