• EnglishEspañol日本語한국어Português
  • 로그인지금 시작하기

사용자의 편의를 위해 제공되는 기계 번역입니다.

In the event of any inconsistency between the English version and the translated version, the English versionwill take priority. Please visit this page for more information.

문제 신고

요청 대기열 서버 구성 예

요청 대기열을보고하기 위해 New Relic 에이전트는 프런트엔드 웹 서버(예: Apache 또는 Nginx) 또는 로드 밸런서(예: HAProxy 또는 F5)에서 설정한 HTTP 헤더에 의존합니다. 이 예에서는 여러 플랫폼에서 더 광범위하게 지원되므로 X-Request-Start 헤더를 사용합니다.

이것이 요청 대기열에 대한 서버 구성에서 작동하지 않으면 X-Queue-Start 헤더를 사용해 보십시오. 그렇지 않으면 구문이 동일해야 합니다.

아파치

Apache의 mod_headers 모듈에는 올바른 형식의 %t 변수가 포함되어 있습니다. 요청 대기열 보고를 활성화하려면 다음 코드를 Apache 구성에 추가하십시오.

RequestHeader set X-Request-Start "%t"

Nginx

Nginx 버전 1.2.6 이상과 최신 버전의 Ruby, Python 또는 PHP 에이전트를 사용하는 경우 대기열 시간을 보고하도록 Nginx를 쉽게 구성할 수 있습니다. (Nginx 버전 1.2.6 이하의 경우 모듈이나 패치로 Nginx를 다시 컴파일해야 합니다.)

Nginx 1.2.6 이상으로 구성하는 경우 ${msec} 변수를 사용합니다. 이 변수는 밀리초 분해능의 초 단위 숫자입니다. 자세한 내용은 http://nginx.org/en/docs/http/ngx_http_core_module.html#variables 를 참조하세요.

Nginx 구성에 적절한 정보를 추가합니다.

엔진엑스 구성

가치

일반 Nginx 사용

proxy_set_header X-Request-Start "t=${msec}";

승객

버전 5 이상:

>passenger_set_header X-REQUEST-START "t=${msec}";

이전 버전:

passenger_set_cgi_param X_REQUEST_START "t=${msec}";

fastcgi

fastcgi_param HTTP_X_REQUEST_START "t=${msec}";

uWSGI

uwsgi_param HTTP_X_REQUEST_START "t=${msec}";

F5 로드 밸런서

F5 로드 밸런서의 경우 다음 구성 스니펫을 사용하십시오.

when HTTP_REQUEST_SEND {
# TCL 8.4 so we have to calculate the time in millisecond resolution
# Calculation from: https://groups.google.com/forum/? fromgroups=#!topic/comp.lang.tcl/tV9H6TDv0t8
set secs [clock seconds]
set ms [clock clicks -milliseconds]
set base [expr { $secs * 1000 }]
set fract [expr { $ms - $base }]
if { $fract >= 1000 } {
set diff [expr { $fract / 1000 }]
incr secs $diff
incr fract [expr { -1000 * $diff }]
}
set micros [format "%d%03d000" $secs $fract]
# Want this header inserted as if coming from the client
clientside {
HTTP::header insert X-Request-Start "t=${micros}"
}
}

네트워크 타이밍

요청 대기열이 구성된 경우에도 프런트엔드 서버의 설정은 여전히 브라우저 데이터의 네트워크 시간에 영향을 미칠 수 있습니다. 이는 프런트엔드 서버가 실제로 요청을 수락하고 처리할 때까지 대기 시간 헤더를 추가하지 않기 때문입니다.

대기 시간 헤더는 요청을 수락하는 데 사용되는 수신기 소켓의 백로그를 설명할 수 없습니다. 예를 들어 프런트엔드 서버의 구성으로 인해 리스너 소켓에 대기 중인 요청의 백로그가 발생하면 페이지 로드 타이밍에서 네트워크 시간이 증가한 것으로 표시됩니다.

Copyright © 2024 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.