MID 서버 자원 임계치 경보
MID 서버가 CPU 및 JVM 메모리 사용량에 대한 자원 임계치를 위반할 때 인스턴스에 경고가 표시되므로 위반이 발생할 때 사용자가 이메일 알림 또는 사용자 지정 스크립트를 만들 수 있습니다.
MID 서버가 할당된 CPU 및 메모리 자원의 구성된 임계치를 초과할 경우 MID 서버 문제 [ecc_agent_issue] 테이블은 사용자에게 경고합니다. 이러한 경고는 MID Server에서 성능 저하 또는 메모리 부족 오류가 발생하기 전에 게시되므로 관리자가 자원을 늘리고 다운타임을 방지할 수 있습니다. 관리자는 등록된 이벤트를 사용하여 선택된 수신자에게 임계치 위반에 대해 알리는 이메일 알림을 보내거나 다른 유형의 작업을 수행하기 위한 사용자 지정 스크립트를 만들 수 있습니다. 인스턴스는 해결되지 않은 문제를 최신 상태로 유지하기 위해 MID 서버 문제 [ecc_agent_issue] 테이블을 계속 업데이트합니다.
기본적으로 CPU 및 메모리 임계치 경보는 사용되지 않으며 MID 서버 문제 [ecc_agent_issue] 테이블에 경보가 게시되지 않습니다. 두 가지 유형의 경보를 모두 사용하려면 시스템 속성 [sys_properties] 테이블에 다음 속성을 추가한 다음 값을 true로 설정합니다.
- mid.threshold.resource.breach.enable.cpu.alerts
- mid.threshold.resource.breach.enable.memory.alerts
평가 프로세스
이 처리는 경보가 활성화되었는지 여부에 관계없이 발생합니다.
- 각 MID 서버는 10분마다 CPU 및 메모리 소비 메트릭을 인스턴스로 전송합니다. 인스턴스는 CPU 메트릭을 ECC 에이전트 스칼라 메트릭 [ecc_agent_scalar_metric] 테이블의 평균 CPU 사용 % 필드에 삽입하고 메모리 메트릭을 ECC 에이전트 메모리 메트릭 [ecc_agent_memory_metric] 테이블의 최대 메모리 사용 % 필드에 삽입합니다.
- 삽입이 성공하면 다음 비즈니스 규칙이 각 테이블에서 실행되어 적절한 함수를 호출하는 스크립트 포함을 호출합니다. 각 함수는 구성된 샘플링 간격에 따라 테이블에 삽입된 메트릭 세트의 평균을 사용합니다.
- MID 서버 상태의 CPU 평균 업데이트: MIDResourceThresholdBreach.checkCpuUsage() 스크립트 포함을 호출합니다.
- MID 서버 상태의 최대 메모리 업데이트: MIDResourceThresholdBreach.checkMemoryUsage 스크립트 포함을 호출합니다.
각 함수는 구성된 임계치 및 샘플링 간격을 기준으로 테이블에 삽입된 메트릭 세트의 평균을 사용합니다. 인스턴스는 먼저 각 MID 서버에서 해당 MID 서버에 대한 사용자 지정 임계치 값 또는 샘플링 간격을 설정하는 구성 매개변수를 찾습니다. 이러한 속성에 대한 구성 매개변수가 없는 경우, 인스턴스는 시스템 속성 [sys_properties] 테이블에서 사용할 사용자 지정 값을 찾습니다. 속성을 찾을 수 없는 경우 인스턴스는 코드의 기본 임계값 및 간격 값을 사용합니다.주:임계치 백분율과 샘플링 간격을 모두 구성할 수 있습니다. 자세한 내용은 임계치 및 샘플링 간격 구성를 참조하십시오.
경보 프로세스
CPU 또는 메모리 임계값에 대한 경고를 사용하도록 설정하면 이 처리가 수행됩니다.
- 집계된 평균 메트릭 값이 구성된 백분율 임계치와 같거나 초과하면 인스턴스가 이벤트를 트리거합니다 mid.threshold.resource.breach . 관리자는 이 이벤트를 사용하여 임계치 위반 경보에 대한 이메일 알림을 생성하거나 사용자 지정 스크립트를 만들 수 있습니다.
- 인스턴스는 상태 값이 신규 이고 카운트 가 1인 MID 서버 문제 [ecc_agent_issue] 테이블에 위반 기록을 삽입한 다음 위반의 모든 관련 상세 정보가 포함된 메시지를 게시합니다. 이 메시지의 예는
시작 날짜 2017-01-11 14:25:19 이후에 발생하는 40분 간격 범위 동안 임계값(96>=91)을 초과한 평균 CPU 사용률(%)입니다. 이 메시지는 MID 서버 문제 양식의 간단한 설명 필드와 이벤트에 나타납니다. 메시지의 일부를 이메일 알림에 복사할 수 있습니다.
MID 서버 문제 상태
관리자가 MID 서버 문제 [ecc_agent_issue] 테이블에서 문제를 처음 검사할 때 관리자는 문제의 상태를확인됨 으로 변경하여 문제가 해결되고 있음을 나타낼 수 있습니다. 인스턴스는 위반을 감지할 때마다 위반을 기존 문제와 매칭하려고 시도합니다. MID 서버에 이미 신규 또는 확인됨상태의 해당 위반에 대한 문제 기록이 있는 경우 인스턴스는 마지막으로 탐지된 필드 를 현재 날짜/시간으로 업데이트하고 기존 기록의 카운트 필드를 증가시킵니다. 이렇게 하면 MID 서버 문제 [ecc_agent_issue] 테이블에 중복 기록이 생성되는 것을 방지하고 초기 인시던트 이후 위반이 다시 발생한 횟수를 기록합니다. 관리자는 MID Server 자원을 점진적으로 늘리고 개수 필드에 미치는 영향을 확인할 수 있습니다. 카운터가 증가를 중지하면 관리자는 MID Server에 적절한 자원이 있음을 알 수 있습니다. MID Server 자원이 적절하게 조정되면 관리자가 상태를해결됨으로 설정합니다. 해결됨상태의 MID 서버 문제와 일치하는 새 임계치 위반이 로깅되면 인스턴스가 새 문제 기록을 생성합니다.
주:
MID 서버 문제 [ecc_agent_issue] 테이블에서 30일 동안 업데이트되지 않은 기록은 상태와 상관 없이 삭제됩니다.
자원 문제 해결을 위한 권장 사항
관리자는 이벤트 알림을 받으면 MID Server의 자원 문제를 해결할 수 있습니다. MID 서버 자원에 대한 부담을 줄이려면 다음 권장 사항을 따르십시오.
- JVM 메모리:
- MID 서버에 더 많은 최대 메모리를 할당합니다. 자세한 내용은 MID 서버 JVM 메모리 크기 설정을(를) 참조하십시오.
- 추가 MID Server를 추가하여 작업 부하를 공유합니다. 자세한 내용은 MID 서버 클러스터을(를) 참조하십시오.
- MID 서버의 동시 처리량을 줄입니다. 여기에는 Discovery 일정을 위해 IP 주소 범위를 더 작은 세그먼트로 분할하거나 임포트 작업 내에서 더 작은 데이터 세그먼트를 로드하는 작업이 포함됩니다.
- CPU: 호스트의 활동을 줄이거나 MID 서버를 사용 가능한 자원이 더 많은 새 호스트로 마이그레이션합니다. 주:MID 서버는 Discovery 중에 자원 사용량 스파이크를 생성할 수 있으며, 특히 많은 수의 대상에 대해 검색하거나 여러 Power Shell 세션을 동시에 실행할 수 있습니다. 검색 실행이 성공적으로 중지되면 MID 서버 호스트의 자원 사용률이 자동으로 정상으로 돌아갑니다. CPU 사용률을 줄이려면 전용 머신에서 MID 서버를 호스팅합니다. 자원 사용 문제가 발생할 경우 각 전용 호스트 컴퓨터에서 하나의 MID 서버만 실행되는지 확인합니다. MID 서버가 퍼블릭 클라우드에서 호스팅되는 경우 CPU 자원을 더 추가하여 시끄러운 인접 장치 문제를 방지하십시오. 자세한 내용은 MID 서버가 있는 호스트의 높은 CPU 사용량[KB0597639]을 참조하십시오.
자원 임계치 평가에 사용되는 테이블
| 테이블 | 설명 |
|---|---|
| MID 서버 문제 [ecc_agent_issue] | 구성된 CPU 및 메모리 임계치 위반을 포함하여 다양한 유형의 MID 서버 문제에 대한 데이터를 저장합니다. 자원 임계치 위반에 사용되는 필드는 다음과 같습니다.
|
| MID Server 상태 [ecc_agent_status] | CPU 및 메모리 자원에 사용되는 백분율을 각 자원에 대해 구성 가능한 간격 동안 평균으로 저장합니다. 사용되는 필드는 다음과 같습니다.
|
| ECC 에이전트 스칼라 메트릭 [ecc_agent_scalar_metric] | 각 MID 서버에서 삽입한 CPU 사용량 데이터를 10분마다 저장합니다. 자원 임계치 경보에 사용되는 테이블 필드는 평균입니다. |
| ECC 에이전트 메모리 메트릭 [ecc_agent_memory_metric] | 각 MID 서버에서 삽입한 메모리 사용량 데이터를 10분마다 저장합니다. 자원 임계치 경보에 사용되는 테이블 필드는 max_used_pct입니다. |
임계치 위반을 확인하는 비즈니스 규칙
| 비즈니스 규칙 | 설명 |
|---|---|
| MID 서버 상태의 CPU 평균 업데이트 | MID 서버가 ECC 에이전트 스칼라 메트릭 [ecc_agent_scalar_metric] 테이블에 기록을 삽입한 후에 실행됩니다. 이 비즈니스 규칙은 임계치 설정을 평가하여 MID 서버가 구성된 CPU 자원 임계치를 위반했는지 여부를 확인하는 MIDResourceThresholdBreach 스크립트 포함 함수를 트리거합니다. |
| MID 서버 상태의 최대 메모리 업데이트 | MID 서버가 ECC 에이전트 메모리 메트릭 [ecc_agent_memory_metric] 테이블에 기록을 삽입한 후에 실행됩니다. 이 비즈니스 규칙은 임계치 설정을 평가하여 MID 서버가 구성된 메모리 자원 임계치를 위반했는지 여부를 확인하는 MIDResourceThresholdBreach 스크립트 포함 함수를 트리거합니다. |
임계치 및 샘플링 간격 구성
기본 임계치 백분율과 샘플링 간격을 사용하거나 다음 방법 중 하나를 사용하여 사용자 지정 값을 구성할 수 있습니다.
- 인스턴스에 시스템 속성을 추가하고 모든 MID Server의 기본값을 변경합니다.
- 구성 매개변수를 추가하여 개별 MID Server의 기본 자원 값을 변경합니다.
시스템 속성과 구성 매개변수는 동일한 이름을 사용합니다.
| 속성/구성 매개변수 | 설명 |
|---|---|
| mid.threshold.mean_cpu.aggregate_interval_span | CPU 사용량 데이터 샘플링 간격의 10분 단위 수입니다. 기본 간격은 30분(3 x 10분)입니다. 기본값: 3 |
| mid.threshold.mean_cpu.퍼센트 | 임계치 위반 경보를 시작하는 총 CPU 자원의 사용률입니다. 기본값: 95 |
| mid.threshold.mean_max_memory.aggregate_interval_span | 메모리 사용량 데이터 샘플링 간격의 10분 단위 수입니다. 기본 간격은 30분(3 x 10분)입니다. 기본값: 3 |
| mid.threshold.mean_max_memory.퍼센트 | 임계치 위반 경보를 시작하는 총 메모리 자원의 사용률입니다. 기본값: 95 |
MID 서버 자원 보고
MID Server 대시보드에는 CPU 및 JVM 메모리 자원 소비에 대한 뷰를 제공하는 두 개의 보고서가 포함되어 있습니다. 이 보고서는 지난 30일 동안의 사용량을 보여줍니다.
- 사용된 평균 CPU 백분율: CPU 사용량의 일일 평균 추세를 계산하면 MID 서버 호스트가 소비하는 CPU 처리량을 나타내는 데 도움이 됩니다. 동일한 호스트에 배포된 MID Server는 동일한 CPU 사용량을 보고합니다.
- 사용된 최대 메모리의 평균 백분율: 사용된 최대 백분율(max_used_pct)은 MID 서버에 충분한 메모리 리소스가 있는지 확인하는 데 유용한 메트릭입니다. 이 메트릭은 사용 가능한 총 메모리 대비 최대 사용 메모리의 백분율입니다. 시간 경과에 따른 이 추세를 통해 MID 서버에 필요한 메모리 양을 시각화할 수 있습니다.