2010-01-15 6 views
4

Supposons que je répète des données aléatoires de PHP vers le navigateur. La quantité totale de données aléatoires est environ XGb et l'écho est fait dans les morceaux YKb. ob_start() n'est pas utilisé. Est-ce que les appels écho bloquent après PHP et que les tampons Apache sont pleins (le client n'est pas capable de consommer des données avec la même vitesse que celle générée)? Si oui, combien de tampons PHP et Apache? Est-ce que je comprends bien, le processus:Comment fonctionnent les tampons de bufferisation de sortie dans PHP/Apache?

  • PHP echo envoie des octets au tampon de sortie php jusqu'à ce qu'il soit plein. Après que l'écho commence à bloquer jusqu'à ce qu'un tampon soit envoyé à Apache et ainsi effacé
  • PHP envoie des données de son tampon de sortie jusqu'à ce que le tampon Apache soit plein. Après cela Apache cesse de recevoir des données de PHP et attend, jusqu'à ce que le tampon soit envoyé au client et effacé.

P.S. Si vous êtes surpris par la stupidité de la tâche que je vais accomplir, je peux dire que j'écris un petit script d'équilibrage de trafic pour un serveur dédié avec certaines règles de trafic appliquées (le ratio de trafic IN/OUT doit être maintenu à une certaine valeur) .

Répondre