我写了下面的脚本作为测试,它似乎它只是在一个时间是服务器到两个客户端: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服务器:
每个线程似乎是正确started
在同一时间,由result
(什么PHP回显的背面)和每2个新主题证实确实采取额外的2秒(time
)完成。
每个脚本似乎需要2秒钟才能完成,之后会提供以下2个脚本。这太愚蠢了,因为现在我有一台配备12GB RAM的四核3.2 GHz服务器,没有任何理由排队。值得一提的是,根据htop
(系统监视器),apache2只使用两个CPU内核。
我在一台运行lighttpd和php5-fpm的debian-squeeze服务器上尝试了脚本,这是一个完全不同的设置,但它给出了相同的结果。我不知道这是不好的编码或其他东西..
我已经试过注释掉usleep()
但网络的结果完全相同,除了事实,即htop
然后显示CPU使用率为100%的所有(都)核心。在1
上使用时,每个内核使用率为15%,在500
上使用率仅为6%,确认服务器一次可以支持多于2个页面。
谁能告诉我为什么会发生这种情况?
我不确定,但尝试使用广泛使用的基准测试工具(例如[ApacheBench](https://en.wikipedia.org/wiki/ApacheBench))来测试服务器的容量,而不是测试您正在使用的容量。我没有看到任何理由,服务器在默认情况下一次只能处理2个客户端 – drew010 2012-04-28 19:58:43