본문 바로가기

OpenVOS에서 시스템 로그 메시지(하드웨어, 보안, syserr 등 모든 메시지)가 생성되면 syserr 파티션으로 전송되며 이벤트가 통지됩니다. TheOverseer라는 프로세스가 해당 이벤트를 비롯한 수많은 다른 이벤트를 대기 중입니다.

이 이벤트를 처리하기 위해 TheOverseer는 파티션에서 메시지를 읽어 사용자 힙에 저장합니다. 그런 다음 메시지를 모듈 콘솔 터미널에 기록하고, 지정된 로그에 기록한 후 사용자 힙에서 삭제합니다. 두 기록 작업 중 하나라도 실패하면 메시지는 사용자 힙에 남아 나중에 재시도됩니다.

파티션의 크기는 제한되어 있습니다. 사용자 힙에는 지정된 수의 로그 메시지만 포함됩니다. 이 영역 중 하나가 오버플로우되거나, 지정된 로그 파일이 다른 프로세스에 의해 쓰기 잠금 상태이거나, 콘솔 터미널이 손상된 경우 플래그가 설정됩니다. 이로 인해 기존 메시지가 덮어쓰게 되며, TheOverseer는 syserr_log와 콘솔에 **Log Messages Lost**를 출력합니다.

TheOverseer는 수행해야 할 작업이 많습니다. 그중에는 프로세스 생성 및 종료, send_message 유형의 통신 트래픽 등이 포함되며, 이는 상당한 시간과 처리 능력을 소모할 수 있습니다. 이 프로세스가 바쁘다면 syserr 이벤트 메커니즘을 자주 처리하지 못하게 되어 syserr 오버플로우 현상이 발생할 수 있습니다.

시스템 오류 파티션(syserr)에 메시지가 대량으로 유입되는 모듈 이벤트(예: 다수의 프로세스를 동시에 중지하거나 사용자 애플리케이션이 syserr에 기록하는 경우 등)는 해당 파티션이 가득 차게 할 수 있습니다. 따라서 사용자 애플리케이션이 사이트별 로깅 정보를 보관하기 위해 syserr_log 메커니즘을 사용하는 것은 권장하지 않습니다. 사용자 애플리케이션은 애플리케이션별 로깅 정보를 보관하기 위해 자체 메커니즘을 사용해야 합니다.

© 2024 Stratus Technologies.