Che cos'è un numero elevato di connessioni? Erlangs VM utilizza internamente una rotella del timer per gestire i timer in modo che riduca abbastanza bene fino a qualche migliaio di connessioni. Quindi potresti incontrare dei problemi.
Generalmente il trucco consiste nel raggruppare i pids sui timer. Questo è anche ciò che i kernel tendono a fare. Se ad esempio hai un timer che deve essere svegliato a 200 ms, ti pianifichi prima del tempo, non sul prossimo, ma il prossimo 200ms timer di nuovo. Ciò significa che dovrai attendere almeno 200ms e forse 400ms, mentre 300ms saranno tipici. Approssimando i timer come questo, sei in grado di eseguire molti altri in quanto puoi avere un singolo timer per svegliare un gran numero di processi in un colpo solo. Ma a seconda della frequenza del timer e della quantità di timer, uno standard send_after/3
potrebbe essere sufficiente.
In ogni caso, inizierei assumendo che sia in grado di ridimensionare e quindi gestire il problema se non fosse possibile eseguendo un timing approssimativo come previsto sopra.
fonte
2012-10-20 15:38:43