4

PHP からブラウザにランダム データをエコーし​​ているとします。ランダム データの総量は約 XGb で、エコーは YKb チャンクで行われます。ob_start() は使用されません。PHP および Apache バッファがいっぱいになった後、エコー呼び出しはブロックされますか (クライアントは、生成されたのと同じ速度でデータを消費できません)? その場合、PHP および Apache バッファのサイズはどのくらいですか? プロセスを正しく理解していますか?

  • PHP エコーは、いっぱいになるまでバイトを PHP 出力バッファーに送信しています。その後、一部のバッファがApacheに送信されてクリアされるまで、エコーがブロックされ始めます
  • PHP は、Apache バッファがいっぱいになるまで、出力バッファからデータを送信しています。その後、Apache は PHP からのデータの受信を停止し、バッファーの一部がクライアントに送信されてクリアされるまで待機します。

追伸: 私が達成しようとしているタスクの愚かさに驚かれる場合は、特定のトラフィック ルールが適用された専用サーバー用の小さなトラフィック バランシング スクリプトを書いていると言えます (IN/OUT トラフィックの比率を特定の値に保つ必要があります)。 )。

4

1 に答える 1

4

SendBufferSizeこれはDirectiveに関連している可能性があります。

多分これは http://fplanque.com/dev/linux/why-echo-is-slow-in-php-how-to-make-it-really-fastに役立つでしょう

于 2010-01-15T16:34:43.573 に答える