3

我們剛剛安裝/配置了一個新的Web服務器來替換我們過時的服務器。我們稱之爲舊服務器'server1'+新服務器'server2'。他們都使用相同的代碼運行同一網站,但舊服務器仍以比新服務器更快的速度提供網頁。首先,這裏是在服務器規格一些細節:診斷兩個網絡服務器之間的緩慢頁面'等待時間'

Server1的配置:

的Linux服務器1 2.6.32-25-仿製PAE#45 Ubuntu的SMP週六10月16日21:01: 33 UTC 2010的i686的GNU/Linux

MemTotal:6180036 KB

8個核英特爾(R)至強(R)CPU E5620 @ 2.40GHz的

服務器版本:阿帕奇/ 2.2.14(Ubuntu的)

服務器2配置:

的Linux服務器2 3.2.0-23泛型#36的Ubuntu SMP星期二04月10 20點39分51秒UTC 2012 x86_64的x86_64的x86_64的GNU/Linux的

MemTotal:24682544 KB

16個核英特爾(R)至強(R)CPU E5620 @ 2.40GHz的

服務器版本:阿帕CHE/2.2.22(Ubuntu的)

的主要區別是,服務器2有一個64位操作系統的架構,也有很多更多的內存和CPU處理能力。

我不知道你,但我希望server2吹襪子的server1。然而,在服務網頁時,情況並非如此。

開發工具輸出兩個服務器頁面加載:

Server1 等待時間:314ms

Server2 等待時間:5.45s

正如你所看到的,完全相同的文件請求是由從兩臺機器,但server1仍然占主導地位。

我曾試圖調查可能影響'等待時間'的幾個因素,但我在縮小時間花在哪裏方面遇到了很多困難。 我查看了Apache2配置,在兩臺機器上應用完全相同的指令和模塊擴展... diff'd代碼並驗證它是相同的... network/ping/nslookup時間幾乎完全相同。

任何人都可以解釋究竟如何計算'等待時間',以及任何可以用來縮小問題的做法嗎?

非常感謝, NS

回答

1

是的,我也終於得到它的底部。雖然解決您的問題可能與我的非常不同。 「等待時間」是一個相當廣泛的術語,它可以與服務器端執行的任何事情相關。

在我的情況下,我不得不以相當痛苦的方式手動調試代碼,通過在代碼周圍打印大量的microtime()語句來計算出時間丟失的時間。

事實證明,有一些遺留代碼有exec/sbin/route

在原來的32位的系統,這在任何時間被執行的所有,但由64位機,它取入過量5秒:

$ time /sbin/route 
Kernel IP routing table 
Destination  Gateway   Genmask   Flags Metric Ref Use Iface 
default   10.10.10.1  0.0.0.0   UG 100 0  0 eth0 

real 0m5.007s 
user 0m0.000s 
sys  0m0.004s 

不知道/ sbin目錄/路由通常在64位機器上執行較慢(如果是這樣,它會很高興知道爲什麼),或者它是否僅僅是更新的操作系統版本。

+0

你知道在PHP的土地,你可以使用緩存研磨或其他一些分析器找到瓶頸。不需要microtimes。 –

相關問題