2012-04-28 9 views
0

一度に2つのクライアントへのサーバーであること、それは一度に2つのクライアントにサーバーをされています表示されます:LAMPサーバーのPHPスクリプトは、私がテストとして次のスクリプトを書いた

<?php 
$time = time(); 
$timediff = 0; 

do 
{ 
    $timediff = time() - $time; 
    usleep(1); 
}while($timediff <= 1); 

echo date('G:i:s', $time)." - ".date('G:i:s', time()); 
?> 

結果:

lamp_results

各スレッドが正しくstartedresultによって確認され、同時に、(バックecho'd何PHP)と実際に余分な2秒を取るためにあらゆる2つの新しいスレッド(time)であると思われます終わる。

各スクリプトが終了するまでに2秒かかっているようです。その後、次の2つが表示されます。これは単なる愚かなことです。なぜなら、12GバイトのRAMを搭載したクアッドコア3.2GHzサーバーがあり、正当な理由がないからです。 htop(システムモニタ)によると、apache2は2つのCPUコアしか使用していないことに言及する価値があります。

私は、lighttpdとphp5-fpmを実行しているdebian-squeezeサーバでスクリプトを再試行しましたが、全く異なる設定ですが、同じ結果が得られました。

私は既にusleep()をコメントアウトしましたが、htopが100%のCPU使用率を示している点を除いて全く同じ結果が得られました(両方)コア。 1でusleepを実行すると、各コアに15%の使用率が表示され、500でusleepを使用すると、それぞれ6%に達することはほとんどなく、サーバが2つ以上のページを一度に処理できることが確認されます。

これはなぜ起こるのですか?

+1

私はよく分かりませんが、使用しているサーバーではなくサーバーの容量をテストするために、広く使用されているベンチマークツール([ApacheBench](https://en.wikipedia.org/wiki/ApacheBench)など)を試してみてください。サーバーがデフォルトで2つのクライアントを一度に処理する理由はありません。 – drew010

答えて

1

これらのテストはどのくらい正確に実行していますか?あなたのベンチマークソフトウェアが2つの要求を同時に実行するだけであれば、一度に2つの要求を取得するのが理にかなっています。

abapacheベンチマークとも呼ばれます。パラメータを使用して同時要求の量を設定できます。

+0

abは別の結果を示しています。私が使用しているベンチマークソフトウェアでなければならず、スクリプトでもなくウェブサーバーでもなければなりません。 )それを理解しようとします;) – natli

+0

それは、そのような獣と2つの異なるwebserversが2つの同時要求を許可することが少し奇妙に思えました:) – Zombaya

関連する問題