2012-02-19 76 views
2

我正在進行Node.js工作負載測試,我剛剛遇到一個有趣的行爲。 HTTP服務器的最小響應時間爲200毫秒,即使是最簡單的邏輯:Node.js響應時間> = 200ms?

var http = require("http"); 

http.createServer(function(request, response) { 

    response.write("Hello World"); 
    response.end(); 

}).listen(8080); 

運行Windows Server 2003上:

> node main.js 

我在網上搜索,但沒有發現有關這方面的消息。測試是在本地網絡上完成的,而且使用其他網絡服務器(即IIS)可以實現即時響應時間。不要誤會我的意思,我看到這種行爲背後合理的解釋,所以這是我的問題:

這是對默認行爲與node.js的到來,或可能是別的東西造成的?

澄清需求:

  • 節點js版:0.6.11
  • 操作系統:Windows Server 2003 R2 SP2
  • 服務器環境:VMware工作站8.0.0
  • 工作量實用程序: jMeter 2.6(1線工作量)

更新

延遲行爲僅在遠程請求期間出現。如果執行本地工作負載測試,則延遲將接近於零。但是,它不能成爲網絡延遲問題,因爲在同一臺服務器上針對IIS的遠程請求不會產生延遲。我將在其他操作系統上嘗試此操作。

+2

不,這不是我所期待的。你如何衡量請求時間? 「ab」帶來的結果是什麼?您正在使用哪個版本的節點? – 2012-02-20 01:51:48

+0

@AndreySidorov我已經更新了這個問題 – tamasf 2012-02-20 16:12:02

回答

3

這是默認情況下在Windows上設置的Nagle算法(在Azure上的Windows 2008 R2上也可以重現)。

解決方法 - 禁用它響應插座,這樣的:

response.connection.setNoDelay(true); 
1

我運行Ubuntu 64位和節點版本0.6.10,最多我得到一個20毫秒的延遲。我相信這是一個windows問題,因爲Node在Windows上還不完美,不得不等待更多的穩定性。我建議你將問題發佈到郵件列表中。

+2

它可能是任何東西,節點在Windows上相當穩定,更可能是他的網絡/硬件問題 – Raynos 2012-02-20 03:17:57

2

獲得5毫秒的延遲,3ms下載總共8毫秒。 它有所不同,但我見過的最高總共約14ms。

雖然在OS X 10.7.3上運行。我將不得不在Windows上嘗試並查看。

+0

我在Windows Server 2008 R2上也嘗試過,沒有發生額外的延遲,所以看起來這是一個平臺特定的問題。 – tamasf 2012-02-21 00:22:25