我寫了下面的腳本作爲測試,它似乎它只是在一個時間是服務器到兩個客戶端: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