서비스 품질(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
밀리초 내에 열 수 없음을 나타냅니다.이벤트 | 제어기 조치 | 구성 가능? |
---|---|---|
프로브(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를 정리해야 함
QOS_DISABLE_FAILOVER_TRIGGER=1
을 사용하여 StaticHang 메커니즘을 비활성화할 수 있습니다. 이 매개변수 설정을 사용하면 triggerImmediateServerFailover
파일은 여전히 작성되고 삭제되지만 서버는 장애 복구를 강제 실행하기 위해 StaticHang하지 않습니다.QoS 제어기 로그 파일
QoS는 Domino® 서버의 데이터 디렉토리에 새 로그 파일을 저장합니다. QoS 제어기 로그 파일에는 QoS 제어기가 캡처 또는 처리한 다양한 이벤트, QoS 프로브, 서버 재시작, 서버 충돌, QoS 스마트 강제 종료에 관련된 이벤트 및 기타 이벤트에 해당하는 세부사항이 포함되어 있습니다. 다음 섹션에서는 이 로그 파일, 로그 파일 작동 방법, 서비스에서 이벤트의 문제를 해결할 때 이벤트를 올바르게 읽는 방법에 대해 설명합니다.
qoscntrlr201105171528.out
이 시간소인은 QoS 제어기가 시작된 시간을 나타냅니다. 예제 파일 이름은 2011년 5월 17일 오후 3시 28분에 시작한 서비스의 QoS 제어기 로그입니다. 서비스가 중지되고 다시 시작되면 현재 qoscntrlrYYYYMMDDHHmm.out 파일에 .log 확장자가 제공되고 현재 시간으로 새 qoscntrlrYYYYMMDDHHmm.out 파일이 작성됩니다. 서비스가 시작될 때 14일 이상된 qoscntrlrYYYYMMDDHHmm.log 파일은 자동으로 삭제됩니다.
로그 파일 이름 지정 규칙
qoscntrlr201105171528.out
이 시간소인은 QoS 제어기가 시작된 시간을 나타냅니다. 예제 파일 이름은 2011년 5월 17일 오후 3시 28분에 시작한 서비스의 QoS 제어기 로그입니다. 서비스가 중지되고 다시 시작되면 현재 qoscntrlrYYYYMMDDHHmm.out 파일에 .log 확장자가 제공되고 현재 시간으로 새 qoscntrlrYYYYMMDDHHmm.out 파일이 작성됩니다. 서비스가 시작될 때 14일 이상된 qoscntrlrYYYYMMDDHHmm.log 파일은 자동으로 삭제됩니다.
로그 파일을 읽는 방법
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
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
TimeDate=20120508T001506,95-04
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 제어기 로그 파일을 조회할 때 확인해야 할 기본 로깅 이벤트 예제를 보여줍니다.
이벤트 | 로그 표시 내용 예제 |
---|---|
정상 서버 시작 |
|
정상 서버 종료 |
|
QoS 프로브 |
|
장기간 실행 중인 애플리케이션 |
|
로그 파일의 서버 크래쉬 증거
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.
로그 파일의 스마트 강제 종료 증거
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