2012-04-28 42 views
0

我写了下面的脚本作为测试,它似乎它只是在一个时间是服务器到两个客户端: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回显的背面)和每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个页面。

谁能告诉我为什么会发生这种情况?

+1

我不确定,但尝试使用广泛使用的基准测试工具(例如[ApacheBench](https://en.wikipedia.org/wiki/ApacheBench))来测试服务器的容量,而不是测试您正在使用的容量。我没有看到任何理由,服务器在默认情况下一次只能处理2个客户端 – drew010 2012-04-28 19:58:43

回答

1

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

你可以试试ab也被称为apache基准。您可以使用参数设置同时请求的数量。

+0

ab显示了不同的结果..必须是我使用的基准软件,而不是脚本 - web服务器。多么奇怪..我我会试图找出它,谢谢;) – natli 2012-04-28 20:04:06

+0

这似乎有点奇怪,这样的野兽和两个不同的网络服务器只会允许2个同时请求:) – Zombaya 2012-04-28 20:10:18

相关问题