상태 관리
Liberty의 상태 관리 기능으로, 사용자는 애플리케이션 서버 환경의 모니터링에 대한 정책 구동 접근 방법을 취할 수 있으며 비정상적 기준이 발견될 때 조치를 취할 수 있습니다.
상태 정책을 정의할 수 있으며, 여기에는 사용자 환경에서 모니터링되는 상태 조건 및 해당 조건이 충족될 때 취한 상태 조치가 포함되어 있습니다.
상태 조건
상태 조건은 사용자 환경에서 모니터링할 변수를 정의합니다. 조건 요소는 이 상태 정책을 트리거할 수 있는 동작을 정의합니다. 상태 정책마다 오직 하나의 조건 요소만 정의가 가능합니다. 다음의 사전 정의된 상태 조건에서 선택할 수 있습니다.
- 초과 요청 제한시간 조건
- 제한시간이 초과될 수 있는 HTTP 요청의 백분율을 지정합니다.
요청의 백분율이 정의된 값을 초과하면 상태 조치가 실행됩니다. 제한시간 값은 사용자 환경 구성에 따라 다릅니다.
<excessiveRequestTimeout timeoutPercentage="5"/>
참고: 이 조건을 사용하려면 동적 라우팅을 사용해야 합니다. - 초과 응답 시간 조건
- 요청을 완료하는 데 걸리는 시간의 평균 양을 추적합니다.
시간이 정의된 응답 시간 임계값을 초과하면 상태 조치가 실행됩니다.
<excessiveResponseTime responseTime="10s"/>
참고: 초과 응답 시간 조건에 대해 구성된 제한시간 값을 초과하는 요청은 이 상태 조건 방향으로 계수되지 않습니다. 예를 들어, 기본 제한시간 값이 60초로 설정된 경우 60초를 초과하는 요청은 제한시간 초과되며 이 상태 조건에 대한 평균 응답 시간 계산에 포함되지 않습니다. 이 제한사항은 초과 요청 제한시간 조건을 정의하지 않은 경우에도 적용됩니다.참고: 이 조건을 사용하려면 동적 라우팅을 사용으로 설정해야 합니다. - 메모리 조건: 과도한 메모리 사용
- 멤버에 대한 메모리 사용을 추적합니다. 메모리 사용이 지정된 시간 동안
힙 크기의 백분율을 초과하면 상태 조치가 실행됩니다.
<excessiveMemoryUsage heapSizePercentage="85" timePeriod="5m"/>
- 메모리 조건: 메모리 누수
- 사용 가능한 메모리의 하향 추세가 발견되면 상태 조치가 실행됩니다.
<memoryLeak/>
상태 조치
상태 조치는 상태 조건이 충족되지 않을 때 수행할 활동을 정의합니다. 조치 요소는 발견된 조건에 대한 응답으로 취할 조치를 정의합니다. 모든 조치는 <action>의 요소 유형을 공유합니다. 조치 속성은 취할 조치를 판별하며, 각 상태 정책마다 다수의 조치를 정의할 수 있습니다. 조치는 정책에 지정된 순서대로 실행됩니다. 다음 표에는 Liberty 서버 환경에서 지원되는 상태 조치가 나열되어 있습니다.
상태 조치 | 동일한 집합체 제어기에서 실행되는 Liberty 서버 |
---|---|
서버 재시작 | 지원됨 |
스레드 덤프 수행 | 지원됨 |
JVM(Java™ virtual machine) 힙 덤프 수행 | IBM® JRE 또는 JDK에서 실행 중인 서버에 대해 지원됨 |
서버의 유지보수 모드 시작 | 지원됨 |
서버의 유지보수 모드 종료 | 지원됨 |
<action action="generateThreadDump"/>
<action action="generateHeapDump"/>
<action action="restartServer"/>
<action action="enterMaintenanceMode"/>
<action action="exitMaintenanceMode"/>
상태 대상
대상 요소는 조건에 대해 모니터링되는 토폴로지의 범위를 정의합니다. 세 가지 대상 유형이 있습니다.
- 호스트
<host hostName="someHost"/>
- 클러스터의 각 서버
<cluster clusterName="someCluster"/>
- 단일 서버
<server hostName="Host" wlpUsrDirectory="/opt/ibm/liberty/wlp" serverName="Server"/>
각 대상 유형에는 healthPolicy 요소 내에 이를 정의하기 위해 사용되는 고유 요소가 있습니다. 상태 정책마다 둘 이상의 대상을 지정할 수 있습니다.