Bonjour, j'aimerai avoir l'avis de DBA expérimentés là dessus:
L'idée c'est que si j'atteint le nombre maximal de connections autorisées, je met le script en veille 5 secondes (5 fois). Ca a l'air de fonctionner mais je ne suis pas vraiment convaincu c'est la raison pour laquelle je sollicite vos avis.
ApacheBench me confirme bien que c'est meilleur que sans test, par contre je n'arrive pas à affiner le délai d'attente, les résultats sont erratiques, parfois 3 erreurs, parfois aucune. Il y aurait-il moyen de l'améliorer ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 $retries = 0 ; do { $sql = "SHOW PROCESSLIST" ; $proc = $db->fetchAll($sql) ; $threads = count($proc) ; if ($threads >= MAXTHREADS) { $log->info("$threads threads connected.") ; $retries++ ; if ($retries > 5) { die("server busy\n") ; } else { sleep(5) ; } } } while ($threads >= MAXTHREADS) ;
Partager