Apache n'est pas multithread?
Je suis en utilisant Apache salon de plus de 3 mois sur localhost.
Aujourd'hui, j'ai constaté que mon Apache/PHP installation n'est pas multithread en exécutant un script qui utilise sleep(10) & ouvrir 2 onglets du navigateur en même temps. (deuxième onglet charges de 10 secondes après la première a été faite).
J'ai installé Apache(apache.org la version) et rien n'a changé.
J'utilise PHP 5.3.6 VC9 thread-safe.
Quel est le problème?
C'est une jolie imparfait de test. Dans le type de session PHP de site, vous aurez juste être en attente jusqu'à ce que le fichier de session est libéré par le script avant. Qui ne dit rien à propos de Apache internes.
OriginalL'auteur Ahmad | 2011-08-19
Vous devez vous connecter pour publier un commentaire.
Vous devez vous assurer que vous utilisez Apache MPM worker, plutôt que le mpm prefork. Selon votre installation, vous pouvez simplement être en mesure de symboliquement le lien /usr/sbin/httpd2 à /usr/sbin/httpd2-travailleur (ou partout où il est installé).
Bien sûr, dans votre cas, vous pourriez tout aussi bien augmenter le nombre maximum de processus dans votre config, ce qui devrait vous permettre d'ouvrir plusieurs onglets et de les exécuter en même temps.
Quelque chose comme ceci:
de l'aide? de l'aide? de l'aide?
Si vous avez réussi à accroître le nombre maximum de processus apache, qui devrait avoir résolu votre problème, en changeant à multithread MPM devrait même pas faire la différence. Vous pouvez poster pertinentes de configuration d'apache?
Une autre possibilité est que vous utilisez MySql avec les tables myisam, lorsqu'une requête est en cours d'exécution sur une table, la table se bloque, alors que d'autres processus/threads qui ont besoin d'accéder à la table d'attendre. De commutation pour les tables innodb en MySql devrait résoudre cela.
Non, dans mon fichier de test il n'y a rien, mais: "<?php sleep(10); ?> j'ai aussi installé la dernière version de apache & php. même installé WAMP Server. Également ajouté vos options proposées, mais rien n'a changé. Voici mon httpd.conf:mediafire.com/?fckfzb5003ledb9
OriginalL'auteur Gabriel Ross
J'ai eu le même problème. J'ai envoyer des requêtes à partir de 3 onglets du navigateur de google Chrome pour un script local avec
sleep(4)
et les réponses attendait les uns des autres. Mais j'ai vérifié ce que si j'ai envoyé un à partir de Chrome et la seconde à partir de Firefox, cette situation de ne pas reproduireOriginalL'auteur Yurii Kovalenko
Il semble que vous tombez sur une fonctionnalité du navigateur:
De fond des onglets ne sont chargés que lorsque vous passez à l'onglet; c'est la valeur par défaut pour de nombreux navigateurs (vérifiez vos paramètres ou utiliser deux navigateurs différents pour vérifier).
Ce qui concerne 🙂
OriginalL'auteur Silke