2012-04-28 47 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

相關問題