php脚本一次只能作为两个客户端的服务器

时间:2012-04-28 19:52:27

标签: 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服务器的结果:

lamp_results

每个线程似乎同时正确started,由result(什么是php echo back)确认,每2个新线程确实需要额外的2秒({{ 1}})完成。

每个脚本似乎需要2秒才能完成,之后会提供以下2个脚本。这只是愚蠢的,因为现在我有一个四核3.2 GHz服务器,12GB RAM排队的人没有充分的理由。值得一提的是,根据time(系统监视器),apache2只使用了两个CPU核心。

我在运行lighttpd和php5-fpm的debian-squeeze服务器上再次尝试了这个脚本,这是一个完全不同的设置,但它给出了相同的结果。我不确定这是不好编码还是别的......

我已经尝试评论htop,但是这会产生完全相同的结果,除了usleep()然后在所有(两个)核心上显示100%的CPU使用率这一事实。通过htop上的usleep,它显示每个核心的使用率为15%,并且1上的睡眠时间仅为6%,确认服务器应该能够提供比2更多的页面服务。一段时间。

有谁能告诉我为什么会这样?

1 个答案:

答案 0 :(得分:1)

你究竟是如何运行这些测试的?如果您的基准测试软件只同时执行2个请求,那么您一次只能获得2个请求。

您可以尝试 ab ,也称为 apache benchmark 。您可以使用参数设置同时请求的数量。