성능 버킷을 통해 버킷을 정의하여 여러 서버 함수에 연결할 수 있습니다. 이러한 함수 중 하나가 호출될 때마다 서버는 통계 데이터를 수집하여 버킷에 추가합니다. 예를 들어 send-cgi 및 NSServletService는 각각 CGI와 Java 서블릿 요청을 서비스하는 데 사용됩니다. CGI 및 서블릿 요청에 대해 두 개의 버킷을 정의하여 별도의 카운터를 유지하거나 두 가지 동적 컨텐트 유형 모두에 대한 요청을 계산하는 버킷을 하나 만들 수 있습니다. 이러한 정보의 수집 비용은 매우 낮으며 보통 서버 성능에 거의 영향을 미치지 않습니다. 이러한 정보는 나중에 perfdump 유틸리티를 사용하여 액세스할 수 있습니다.
버킷에는 다음 정보가 저장됩니다.
버킷의 이름- 이 이름은 버킷과 함수를 연결시키는 데 사용됩니다.
설명- 버킷이 연결된 함수에 대한 설명입니다.
이 함수에 대한 요청 수- 이 함수를 호출한 요청의 총 수입니다.
함수가 호출된 횟수- 하나의 요청에 대해 두 번 이상 실행되는 함수도 있으므로 이 수는 함수에 대한 요청 수와 일치하지 않을 수 있습니다.
함수 대기 또는 디스패치 시간- 서버가 함수 호출에 사용한 시간입니다.
함수 시간- 함수 자체에 소요된 시간입니다.
default-bucket은 서버에 의해 미리 정의됩니다. 사용자 정의된 버킷에 연결되지 않은 함수의 통계를 기록합니다.
성능 버킷 magnus.conf 및 obj.conf 파일의 모든 구성 정보를 지정해야 합니다. 기본 버킷만 자동으로 사용 설정됩니다.
먼저 perfdump 유틸리티를 사용하여 현재 활동 모니터링의 설명에 따라 성능 측정을 활성화해야 합니다.
다음 예는 magnus.conf 파일에서 새 버킷을 정의하는 방법을 보여 줍니다.
Init fn="define-perf-bucket" name="acl-bucket" description="ACL bucket"
Init fn="define-perf-bucket" name="file-bucket" description="Non-cached responses"
Init fn="define-perf-bucket" name="cgi-bucket" description="CGI Stats"
이 예에서는 acl-bucket, file-bucket 및 cgi-bucket의 세 가지 버킷을 만듭니다. 이 버킷을 함수와 연결하려면 성능을 측정할 obj.conf 함수에 bucket=bucket-name을 추가합니다.
예
PathCheck fn="check-acl" acl="default" bucket="acl-bucket"
...
Service method="(GET|HEAD|POST)" type="*~magnus-internal/*" fn="send-file" bucket="file-bucket"
...
<Object name="cgi">
ObjectType fn="force-type" type="magnus-internal/cgi"
Service fn="send-cgi" bucket="cgi-bucket"
</Object>
버킷의 서버 통계는 perfdump 유틸리티를 사용하여 액세스할 수 있습니다. 성능 버킷 정보는 perfdump에서 반환된 보고서의 마지막 섹션에 있습니다.
보고서에는 다음 정보가 포함되어 있습니다.
요청된 각 통계의 평균, 총계 및 백분율 열
Request Processing Time은 서버가 지금까지 수신한 모든 요청을 처리하는 데 소요된 총 시간입니다.
Number of Requests는 함수에 대한 요청의 총 수입니다.
Number of Invocations는 함수가 호출된 총 횟수입니다. 하나의 요청을 처리하는 동안 함수가 여러 번 호출될 수 있기 때문에 이 값은 요청 수와 다릅니다. 이 행의 백분율 열은 모든 버킷의 총 호출 수를 참조하여 계산됩니다.
Latency는 Proxy Server가 함수 호출을 준비하는 데 사용하는 시간(초)입니다.
Function Processing Time은 Proxy Server가 함수 내에서 소비한 시간(초)입니다. Function Processing Time 및 Total Response Time의 백분율은 총 Request Processing Time을 참조하여 계산됩니다.
Total Response Time은 Function Processing Time 및 Latency의 시간(초)의 합계입니다.
다음 예는 perfdump를 통해 사용할 수 있는 샘플 성능 버킷 정보를 보여 줍니다.
Performance Counters: ------------------------------------------------ Average Total Percent Total number of requests: 1 Request processing time: 0.2559 0.2559 default-bucket (Default bucket) Number of Requests: 1 (100.00%) Number of Invocations: 7 (100.00%) Latency: 0.2483 0.2483 ( 97.04%) Function Processing Time: 0.0076 0.0076 ( 2.96%) Total Response Time: 0.2559 0.2559 (100.00%) |