서비스 품질(QoS) 동작 및 로깅 이해

이 항목에서는 강제 종료 이벤트, 장애 복구 트리거 및 파일 내용 로깅 중의 서버 및 서버 제어기 동작을 포함한 QoS의 세부사항에 대해 설명합니다.

QoS 강제 종료 이벤트

다음은 강제 종료 이벤트 중에 서버 및 서버 제어기가 작동하는 방식입니다.
  • 'nsd -kill'은 nsd를 생성하지 않습니다. kill_* 파일만 생성합니다.
  • 서버를 다시 시작할 경우에만 제어기가 문제 해결을 위해 자체 'nsd -stacks'를 생성합니다.
  • notes.ini에서 QoSShutdownNSD=seconds를 설정하면 서버가 QoSShutdownNSD초 내로 완전히 종료되지 않는 경우 QoSShutdownNSD초마다 'nsd -stacks'가 생성됩니다. 종료하는 데 시간이 오래 걸리는 서버 문제점을 해결하는 데 이 notes.ini 설정이 사용됩니다.
주: 다음 표에서 제한시간 초과는 qosprobe 서버 추가 기능이 서버의 names.nsf($Servers view)를 QOS_PROBE_TIMEOUT 밀리초 내에 열 수 없음을 나타냅니다.
1. 이벤트 및 조치
이벤트 제어기 조치 구성 가능?
프로브(qosprobe) 제한시간 초과 5분 후에 서버가 강제 종료되고 다시 시작됩니다. dcontroller.ini:QOS_PROBE_TIMEOUT=minutes
장기간 실행 중인 애플리케이션 제한시간 초과 10분 후에 서버가 강제 종료되고 다시 시작됩니다. dcontroller.ini:QOS_APPS_TIMEOUT=minutes
서버에 공유 처리가 부족함 서버가 강제 종료되고 다시 시작됩니다. 아니요
서버에 세션 테이블이 부족함 서버가 강제 종료되고 다시 시작됩니다. 아니요
서버에 네트워크 메모리가 부족함 서버가 강제 종료되고 다시 시작됩니다. 아니요
서버에 공유 메모리 처리가 부족함 서버가 강제 종료되고 다시 시작됩니다. 아니요
실행 중 서버 충돌/패닉 5분 후에 서버가 재시작됩니다. 아니요
서버를 종료하는 데 시간이 오래 걸림('quit') 5분 후에 서버가 강제 종료됩니다. dcontroller.ini:QOS_SHUTDOWN_TIMEOUT=minutes
서버를 다시 시작하는 데 시간이 오래 걸림('restart server') 5분 후에 서버가 강제 종료되고 다시 시작됩니다. dcontroller.ini:QOS_RESTART_TIMEOUT=minutes
서버 프로세스가 비정상적으로 종료됨 서버가 강제 종료되고 다시 시작됩니다. 아니요

QoS 장애 복구 트리거

QoS 스마트 강제 종료 시 서버를 최대 20분 동안 종료할 수 있습니다. 전체 종료 시간에는 프로브 제한시간 초과를 발견하는 데 걸리는 시간(약 5분), 모든 프로세스의 데이터를 수집하기 위해 nsd를 실행하는 데 걸리는 시간(최대 3분), 서버를 강제 종료하는 데 걸리는 시간(최대 1-2분), 재시작하는 데 걸리는 시간(게이트 태스크 시간 최대 10분 포함)이 포함될 수 있습니다. QoS가 서버를 강제 종료해야 함을 발견한 순간으로부터 몇 초 내에 클러스터 관련 항목에 대해 즉시 장애 복구를 하도록 설정하는 새로운 요청이 서버의 프로세스에 지정되었습니다.

서버가 시작, 실행 및 처리 중인 것으로 알려진 경우에만 장애 복구가 적용되므로 다음과 같은 스마트 강제 종료 시나리오에서는 빠른 장애 복구 기능이 사용되지 않습니다.
  • 서버 종료에 시간이 너무 오래 걸림
  • 서버 재시작에 시간이 너무 오래 걸림
  • 서버 충돌이 발생하고 충돌 후 QoS를 정리해야 함
주: notes.ini 설정 QOS_DISABLE_FAILOVER_TRIGGER=1을 사용하여 StaticHang 메커니즘을 비활성화할 수 있습니다. 이 매개변수 설정을 사용하면 triggerImmediateServerFailover 파일은 여전히 작성되고 삭제되지만 서버는 장애 복구를 강제 실행하기 위해 StaticHang하지 않습니다.

QoS 제어기 로그 파일

QoS는 Domino® 서버의 데이터 디렉토리에 새 로그 파일을 저장합니다. QoS 제어기 로그 파일에는 QoS 제어기가 캡처 또는 처리한 다양한 이벤트, QoS 프로브, 서버 재시작, 서버 충돌, QoS 스마트 강제 종료에 관련된 이벤트 및 기타 이벤트에 해당하는 세부사항이 포함되어 있습니다. 다음 섹션에서는 이 로그 파일, 로그 파일 작동 방법, 서비스에서 이벤트의 문제를 해결할 때 이벤트를 올바르게 읽는 방법에 대해 설명합니다.

주: 서버 문제점을 지원 센터와 해결할 경우 로그 파일을 지원 센터에 제공할 수도 있습니다.
로그 파일 이름 지정 규칙

QoS 제어기 로그 파일 이름에는 YYYYMMDDHHmm 형식의 24시간 시간소인이 포함되어 있습니다.
qoscntrlr201105171528.out

이 시간소인은 QoS 제어기가 시작된 시간을 나타냅니다. 예제 파일 이름은 2011년 5월 17일 오후 3시 28분에 시작한 서비스의 QoS 제어기 로그입니다. 서비스가 중지되고 다시 시작되면 현재 qoscntrlrYYYYMMDDHHmm.out 파일에 .log 확장자가 제공되고 현재 시간으로 새 qoscntrlrYYYYMMDDHHmm.out 파일이 작성됩니다. 서비스가 시작될 때 14일 이상된 qoscntrlrYYYYMMDDHHmm.log 파일은 자동으로 삭제됩니다.

로그 파일 이름 지정 규칙

QoS 제어기 로그 파일 이름에는 YYYYMMDDHHmm 형식의 24시간 시간소인이 포함되어 있습니다.
qoscntrlr201105171528.out

이 시간소인은 QoS 제어기가 시작된 시간을 나타냅니다. 예제 파일 이름은 2011년 5월 17일 오후 3시 28분에 시작한 서비스의 QoS 제어기 로그입니다. 서비스가 중지되고 다시 시작되면 현재 qoscntrlrYYYYMMDDHHmm.out 파일에 .log 확장자가 제공되고 현재 시간으로 새 qoscntrlrYYYYMMDDHHmm.out 파일이 작성됩니다. 서비스가 시작될 때 14일 이상된 qoscntrlrYYYYMMDDHHmm.log 파일은 자동으로 삭제됩니다.

로그 파일을 읽는 방법

로그 파일의 시작 부분에 이 로깅된 QoS 제어기 실행에 대한 일반 구성 정보가 표시됩니다.
2012/08/06 06:33:34 QoS Controller: Starting QOSPipeWatcher
2012/08/06 06:33:34 QoS Controller: QOS_PROBE_TIMEOUT=5 minutes
2012/08/06 06:33:34 QOSController: QOS_SHUTDOWN_TIMEOUT=5 minutes
2012/08/06 06:33:34 QOSController: QOS_RESTART_TIMEOUT=5 minutes
2012/08/06 06:33:34 QOSController: QOS_APPS_TIMEOUT=10 minutes
2012/08/06 06:33:34 QoS Controller: nsd Program Path=/opt/hcl/notes/latest/linux/nsd.sh
2012/08/06 06:33:34 QoS Controller: QOS_RESTART_LIMIT_MAXIMUM=3
2012/08/06 06:33:34 QoS Controller: QOS_RESTART_LIMIT_PERIOD=30 minutes
2012/08/06 06:33:34 QoS Controller: QOS_NOKILL=false
2012/08/06 06:33:34 QoS Controller: QOS_MAIL_TO=test/hcl
2012/08/06 06:33:34 QoS Controller: QOS_MAIL_SMTP_SERVER=xx
다른 일부 기본 항목과 함께 이 항목을 서버의 데이터 디렉토리에 있는 Domino® 제어기 ini 파일(dcontroller.ini)에 구성할 수 있습니다. 이 지점 이후의 파일 나머지 부분에는 서버 또는 해당 태스크 중 하나가 QoS 제어기에 전송한 메시지에 대한 로그 항목이 포함되어 있습니다. 메시지 형식은 다음과 같습니다.
2012/05/08 00:15:09 QoS Controller: OpMsg=START Type=QOS ObjectType=ServerName ObjectValue=CN=rc45/O=dev ObjectType2=ProcessName ObjectValue2=nserver TimeDate=20120508T001506,95-04
2012/05/08 00:15:09 QoS Controller: OpMsg=START Type=SERVER TimeDate=20120508T001507,40-04
2012/05/08 00:15:21 QoS Controller: OpMsg=READY Type=SERVER TimeDate=20120508T001517,92-04
QoS 제어기 로그 파일에 로깅된 모든 메시지에는 시간소인이 있습니다. QoS 제어기가 메시지를 로그할 경우 형식은 다음과 같습니다.
TimeDate=20120508T001506,95-04
QoS 제어기의 다른 스레드 중 하나가 메시지를 로그 파일에 로깅할 경우 형식은 다음과 같습니다.
2012/05/08 00:15:21 QoS Probe: message
2012/05/08 00:15:21 QoS Applications: message
2012/05/08 00:15:21 QoS Kill: message

로그 파일에서 확인할 내용

다음 표에서는 QoS 제어기 로그 파일을 조회할 때 확인해야 할 기본 로깅 이벤트 예제를 보여줍니다.

2. 기본 로깅 이벤트 예제
이벤트 로그 표시 내용 예제
정상 서버 시작
2012/05/08 00:15:09 QoS Controller: OpMsg=START Type=QOS ObjectType=ServerName ObjectValue=CN=rc45/O=dev ObjectType2=ProcessName ObjectValue2=nserver TimeDate=20120508T001506,95-04
2012/05/08 00:15:09 QoS Controller: OpMsg=START Type=SERVER TimeDate=20120508T001507,40-04
2012/05/08 00:15:10 QoS Applications: Clearing long running apps list
2012/05/08 00:15:21 QoS Controller: OpMsg=READY Type=SERVER TimeDate=20120508T001517,92-04
2012/05/08 00:15:21 QoS Controller: Server is ready to process requests
정상 서버 종료
2012/05/08 00:45:22 QoS Controller: OpMsg=END Type=SERVER ObjectType=Detail ObjectValue=Quit TimeDate=20120508T004516,01-04
2012/05/08 00:45:22 QoS Controller: Deactivating probe...
2012/05/08 00:45:22 QoS Controller: QoS Probe deactivated.
2012/05/08 00:45:26 QoS Controller: OpMsg=END Type=QOS ObjectType=ServerName ObjectValue=CN=rc45/O=dev TimeDate=20120508T004523,51-04
2012/05/08 00:45:27 QoS Applications: Clearing long running apps list
QoS 프로브
2012/05/08 00:15:21 QoS Controller: Activating probe...
2012/05/08 00:15:21 QoS Controller: QoS Probe activated.
2012/05/08 00:15:21 QoS Probe: Starting qosprobe...
2012/05/08 00:15:25 QoS Probe: OpMsg=START, Type=PROBE
2012/05/08 00:16:25 QoS Probe: The QoS Probe is probing.
2012/05/08 00:16:25 QoS Probe: SUCCESS (156ms)
2012/05/08 00:17:25 QoS Probe: SUCCESS (16ms)
2012/05/08 00:18:25 QoS Probe: SUCCESS (31ms)
2012/05/08 00:19:25 QoS Probe: SUCCESS (16ms)
2012/05/08 00:20:26 QoS Probe: SUCCESS (15ms)
장기간 실행 중인 애플리케이션
2012/05/08 00:38:32 QoS Controller: OpMsg=START Type=FIXUP ObjectType=DB ObjectValue=C:\Program Files\HCL\Domino\Data\ddm.nsf TimeDate=20120508T003826,18-04
2012/05/08 00:38:32 QoS Controller: OpMsg=END Type=FIXUP ObjectType=DB ObjectValue=C:\Program Files\HCL\Domino\Data\ddm.nsf TimeDate=20120508T003829,79-04
2012/05/08 00:38:32 QoS Applications: Adding FIXUP[C:\Program Files\HCL\Domino\Data\ddm.nsf] to long running apps list
2012/05/08 00:38:32 QoS Applications: Removing FIXUP[C:\Program Files\HCL\Domino\Data\ddm.nsf] from long running apps list..
2012/05/08 00:47:42 QoS Controller: OpMsg=START Type=COMPACT ObjectType=DB ObjectValue=events4.nsf TimeDate=20120508T004740,23-04
2012/05/08 00:47:42 QoS Controller: OpMsg=END Type=COMPACT ObjectType=DB ObjectValue=events4.nsf TimeDate=20120508T004740,23-04
2012/05/08 00:47:43 QoS Applications: Adding COMPACT[events4.nsf] to long running apps list
2012/05/08 00:47:43 QoS Applications: Removing COMPACT[events4.nsf] from long running apps list

로그 파일의 서버 크래쉬 증거

QoS 제어기는 적절한 시간 안에 강제 종료 및 재시작을 수행하기 위해 충돌 이벤트를 모니터 및 로그합니다. QoS 제어기 로그에서 이 증거를 확인하려면 로그 파일에서 "=CRASH" 텍스트를 검색하십시오. 다음 예를 참조하십시오.
2012/05/08 01:00:44 QoS Controller: OpMsg=CRASH Type=QOS ObjectType=ServerName ObjectValue=CN=rc45/O=dev TimeDate=20120508T010039,48-04
2012/05/08 01:00:44 QoS Controller: Server CN=rc45/O=dev has crashed.
2012/05/08 01:00:44 QoS Controller: Deactivating probe...
2012/05/08 01:00:44 QoS Controller: QoS Probe deactivated.

로그 파일의 스마트 강제 종료 증거

QoS 제어기는 서버 또는 QoS 프로브에서 받은 정보를 기반으로 서버를 자동으로 강제 종료하도록 코딩되어 있습니다. QoS 제어기 파일에서 QoS 프로브 제한시간 초과로 인한 스마트 강제 종료의 내용은 다음과 같습니다.
2012/05/08 00:31:41 QoS Probe: SUCCESS (78ms)
2012/05/08 00:32:41 QoS Probe: SUCCESS (16ms)
2012/05/08 00:37:41 The probe thread has not received a message from qosprobe within the timeout period.
2012/05/08 00:37:41 QoS Probe: The qosprobe addin has timed out, is not responding, or is not running.
2012/05/08 00:37:41 QoS Controller: Deactivating probe...
2012/05/08 00:37:41 QoS Controller: QoS Probe deactivated.
2012/05/08 00:37:43 QoS Controller: OpMsg=TIMEOUT Type=PROBE TimeDate=null
2012/05/08 00:37:43 QoS Controller: The controller has received a probe timeout.
2012/05/08 00:37:43 QoS Kill: Triggering failover...
2012/05/08 00:37:47 QoS Kill: Running nsd...
2012/05/08 00:38:12 QoS Kill: Running nsd -kill
2012/05/08 00:38:16 QoS Kill: Setting kill complete.
2012/05/08 00:38:21 QoS Kill: Restarting DominoStarter thread