2012-02-19 3 views
2

Node.js 작업 부하 테스트를하고 있는데 흥미로운 동작이 발생했습니다. Windows Server 2003에서Node.js 응답 시간> = 200ms?

var http = require("http"); 

http.createServer(function(request, response) { 

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

}).listen(8080); 

란 : HTTP 서버의 최소 응답 시간도 간단한 논리 200 밀리입니다 내가 웹을 검색하지만,이에 대한 정보를 발견하지 않았습니다

> node main.js 

. 테스트는 로컬 네트워크에서 수행되며, 다른 웹 서버 (즉, IIS)를 사용하여 즉각적인 응답 시간을 얻을 수 있습니다. 나를 잘못하지 마라. 나는이 문제에 대한 합리적 설명을 본다. 내 질문이다.

이것은 의 기본 동작이 node.js와 함께 나오는지, 아니면 다른 결과 일 수 있는가? 수요에

명확한 설명 :

  • 노드 JS 버전 : 0.6.11
  • OS : 윈도우 서버 2003 R2 SP2
  • 서버 환경 : VM웨어 워크 스테이션 8.0.0
  • 워크로드 유틸리티 : jMeter 2.6 (1 스레드 작업 부하)

업데이트

지연 동작은 원격 요청 중에 만 나타납니다. 로컬 작업 부하 테스트가 실행되면 지연 시간은 0에 가까워집니다. 그러나 동일한 서버의 IIS에 대한 원격 요청은 대기 시간을 제공하지 않으므로 네트워크 대기 시간 문제 일 수 없습니다. 나는 다른 OS에서 이것을 시도 할 것이다.

+2

아니, 그것이 내가 기대했던 게 아니에요. 요청 시간은 어떻게 측정합니까? 'ab'가주는 결과는 무엇입니까? 어떤 노드 버전을 사용하고 있습니까? –

+0

@AndreySidorov 질문이 업데이트되었습니다. – tamasf

답변

3

Windows에서 기본적으로 Nagle 알고리즘으로 설정됩니다 (Azure의 Windows 2008 R2에서도 재생 가능).

해결 방법 - 다음과 같이 응답 소켓을 비활성화 :

response.connection.setNoDelay(true); 
1

저는 우분투 64 비트 및 노드 버전 0.6.10을 실행 중이며 대부분 20ms 지연이 있습니다. 노드가 여전히 윈도우에서 완벽하지 않기 때문에 윈도우의 문제라고 생각합니다. 안정성을 좀 더 기다려야합니다. 문제를 메일 링리스트에 게시하는 것이 좋습니다.

+2

노드가 매우 안정적입니다. Windows에서 꽤 안정적입니다. 네트워크/하드웨어 문제 일 가능성이 높습니다. – Raynos

2

5ms 대기 시간은 3ms 다운로드로 총 8ms입니다. 다르지만 내가 본 최고는 약 14ms입니다.

OS X 10.7.3에서 실행됩니다. 나는 Windows에서 시도해야 볼 것입니다.

+0

Windows Server 2008 R2도 시도 했으므로 추가 대기 시간이 발생하지 않았습니다. 이것이 플랫폼 특정 문제인 것 같습니다. – tamasf