게시물의 약 10 %를 PUT 또는 내 Node.js를 HTTPS에 걸 요청 서버가 응답을 2 분을 넣어. 나머지 90 %는 예상대로 동작합니다.2 분 지연 또는 요청
내가 요청의 몸이 서버에 의해 수신 tshark를 확인했지만, 다음은 '데이터'와 ServerRequest에 개체의 '끝'이벤트를 트리거 2 분 정도 소요됩니다.
이 대기 시간이 발생하는 요청은 무작위로 표시되지만 발생하면 패킷 수신과 '데이터'및 '종료'이벤트가 실행되는 사이의 대기 시간은 항상 정확히 2 분입니다. 내가 단일 패킷에 도착있어 작은 JSON 객체를 게시하도록하겠습니다 이러한 모든 요청에 대한
. 대기 시간이 발생한 요청의 경우 세션 쿠키가 즉시 구문 분석되므로 헤더가 응용 프로그램에 수신되었다는 것을 알고 있습니다. 세션 인증 후, '데이터'및 '종료'이벤트가 2 분 후에 최종적으로 방출 될 때까지 아무 것도 일어나지 않습니다.이 시간이 지나면 본문이 구문 분석되어 내 데이터베이스에 저장됩니다.이 아마존 리눅스를 실행하는 EC2 작은 인스턴스 내 노드 응용 프로그램이나 내 서버에 문제에 문제가 될 가능성이 있습니까? 요청 본문이 들어있는 패킷이 응용 프로그램에 청크로 전달 될 때까지 2 분이 걸리는 이유는 무엇입니까?
감사합니다.
업데이트 : lib/http.js에서 parser.onBody를 'b'로 수정했으며 2 분 지연이 끝날 때까지이 메소드가 호출되지 않음을 알 수 있습니다. 이 문제는 내 응용 프로그램보다 낮은 수준에 있음을 나타냅니다. 또한 ec2 인스턴스를 변경했지만 도움이되지 않았습니다.
일관된 2 분입니까? 이러한 요청에 얼마나 많은 작업이 이루어지고 있습니까? 가비지 컬렉션과 관련이있을 가능성은? http://stackoverflow.com/questions/5603011/node-js-and-v8-garbage-collection –
네, 매번 정확히 2 분입니다. 별다른 노력 - 구문 분석 된 URL을 첨부하고 세션 쿠키를 구문 분석하고 세션 객체를 redis에서 첨부합니다. 나는 그 어떤 것도 지체하지 못했다. 나는 그것이 붙어있는 동안 정상적인 다른 게시물 요청을 계속받을 수 있기 때문에 가비지 콜렉션이라고 생각하지 않습니다. –