我将以下脚本编写为测试,看起来它一次只是两个客户端的服务器:
<?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 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更多的页面服务。一段时间。
有谁能告诉我为什么会这样?
答案 0 :(得分:1)
你究竟是如何运行这些测试的?如果您的基准测试软件只同时执行2个请求,那么您一次只能获得2个请求。
您可以尝试 ab ,也称为 apache benchmark 。您可以使用参数设置同时请求的数量。