문제
ktranslate 컨테이너가 100% CPU 사용률에 도달했거나 일반적으로 예상보다 높습니다.
팁
주의해야 할 한 가지 세부 사항은 ktranslate의 경우 평균이 아닌 최대 CPU 비율에 초점을 맞추는 것이 중요하다는 것입니다. KTranslate는 폴링 주기의 시작 부분에서 CPU를 많이 사용하지만 주기의 끝 부분에서는 훨씬 적게 사용합니다. 평균 사용량을 살펴보면 60%가 표시되어 ktranslate가 100%에 가까운 시간을 소모하고 있다는 사실을 놓칠 수 있는데, 이는 잠재적인 문제입니다. 최대 CPU 사용량이 100%에 도달하지 않도록 충분한 리소스를 할당해야 합니다.
해결책
CPU 사용량의 원인은 작업 중인 ktranslate 컨테이너 유형에 따라 다릅니다.
SNMP
SNMP 컨테이너는 주로 대상 장치에서 수집해야 하는 데이터 포인트 수와 각 데이터 포인트를 수집하는 데 소요되는 시간으로 인해 CPU 사용량이 증가하는 것을 확인합니다.
SNMP 요청에 효과적으로 응답할 때 대기 시간이 긴 장치에는 더 많은 리소스가 필요합니다. 더 긴 timeout
또는 더 많은 retries
를 사용하면 차트 격차를 피하기 위해 이러한 느린 기기에서 데이터를 가져올 가능성이 높아지지만 컨테이너에 제공해야 하는 리소스의 양이 증가합니다. 일반적으로 각 CPU에 대해 초당 대략 1000개의 이벤트를 수집할 수 있어야 하므로 많은 수의 SNMP 트랩 이벤트가 수신될 수도 있습니다.
사용량이 많은 경우 옵션은 다음과 같습니다.
- 기존 워크로드를 처리하기 위해 호스트에 더 많은 CPU를 추가합니다.
poll_time_sec
전역 또는 기기별 구성에서 더 큰 숫자를 사용하여 폴링 간격을 늘립니다.- ktranslate 구성 yaml의 장치 섹션에서 장치를 제거하고 자동 재발견에 포함되지 않도록 하여 폴링되는 장치 수를 줄이십시오.
mibs_enabled
전역 목록에서 필요하지 않은 MIB를 제외합니다(일반적이지 않음).- 값이 낮거나 시끄러운 SNMP 트랩을 보내지 않도록 네트워크 장치의 구성을 변경하여 볼륨을 줄일 수 있습니다.
흐름
흐름 컨테이너는 주로 인바운드 흐름 이벤트 수로 인해 CPU 사용량이 증가하는 것을 확인합니다. 일반적인 추정으로는 각 CPU에 대해 초당 약 2000개의 흐름을 수집할 수 있어야 하지만 로드는 흐름 프로토콜마다 약간씩 다릅니다.
사용량이 많은 경우 옵션은 다음과 같습니다.
- 기존 워크로드를 처리하기 위해 호스트에 더 많은 CPU를 추가합니다.
- 중요한 인터페이스에서만 흐름을 수집하거나 가능한 경우 샘플링된 흐름을 사용하는 등 네트워크 장치의 설정을 변경하여 들어오는 흐름의 양을 줄입니다.
시스템 로그
Syslog 컨테이너는 주로 인바운드 syslog 이벤트 수로 인해 CPU 사용량이 증가하는 것을 확인합니다. 일반적인 추정으로는 초당 약 2000개의 메시지를 수집할 수 있어야 합니다.
사용량이 많은 경우 옵션은 다음과 같습니다.
- 기존 워크로드를 처리하기 위해 호스트에 더 많은 CPU를 추가합니다.
- 특정 유형의 메시지 또는 심각도를 전송하지 않도록 네트워크 장치의 구성을 변경하여 값이 낮거나 시끄러운 syslog 이벤트의 볼륨을 줄입니다. 이러한 변경 방법은 장치 공급업체의 설명서를 참조하십시오.