Tu définis une période de temps (genre 1/10 de sec, au pif). Tu mesure pour chaque période le débit total de tout tes threads. Ensuite à chaque fin d'intervale tu prends une décision, soit tu augmente le nombre de threads, soit tu le réduis :
- si le débit est plus gros que la période précédente on reprends la même décision qu'on a prise à a période précédente.
- si le débit est plus faible, on prends la décision inverse.
C'est pas parfait, mais ça peut faire un bon départ, le seul cas ou ça peut problème c'est sur le fait que quand t'as trouvé la bonne valeur le truc oscille, si c'est entre 250 et 251 threads tu t'en fout, si c'est entre 2 et 3 parceque le serveur limite en dur par contre l'oscillation sera trop violente et pas efficace (dans ce cas on peut imaginer un mécanisme d'ammortissement assez simple).
---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.