私は http サーバーと php として apache を使用しています。ブラウザからこの php スクリプトに約 5 つの同時リクエストを送信しました。これには for ループがあり、完了するまでに時間がかかります。すべての同時リクエストがブロックされ、順次処理されることがわかりました。
シーケンシャル サービング動作ではなく、http リクエスト サービングのノンブロッキング動作のために apache または php を設定するにはどうすればよいですか?
I know that Tomcat server http connector can tune using following server parameters
– Threads (maxThreads)
– Keep alive requests (maxKeepAliveRequests)
– TCP Backlog (acceptCount)
– connectionTimeout
– Socket buffers
- Use different connectors (nio, apr, bio)
etc...
5 つの同時リクエストに対してテストされたが、Web サーバーによって順次処理される php コード スニペット (Apache 2.2、php 5.3)
<?php
for ($i = 1; $i < 500000; $i++) { //do some processing which takes some time
$sq = sqrt($i);
$val += $sq;
}
echo $val;
?>