링 버퍼, 메시지 대기열 및 쓰기 버퍼는 syslog 또는 rsyslog에서 동일합니까?

링 버퍼, 메시지 대기열 및 쓰기 버퍼는 syslog 또는 rsyslog에서 동일합니까?

링 버퍼, 메시지 큐 및 쓰기 버퍼는 동일합니까? 그렇지 않은 경우 링 버퍼, 큐 및 쓰기 버퍼는 syslogd 또는 rsyslogd에서 어떻게 함께 작동합니까?

  • 대부분의 syslogd 구현대기열 메시지 이 기간 동안 큐에 도착하는 중복 메시지를 처리합니다.

  • 파일이 기록될 때마다 디스크와의 동기화를 지연하여 쓰기 속도를 높일 수 있습니다. 예를 들어 -파일 이름을/etc/syslog.conf*.debug;mail.none;news.none -/var/log/messages

syslogd 또는 rsyslogd가 링 버퍼에 새 로그를 기록할 때 파일에도 동일한 새 로그를 기록합니까 /var/log/syslog? 링 버퍼의 내용은 항상 파일 내용의 일부입니까 /var/log/syslog, 아니면 파일보다 먼저 나타나서 파일 내용을 쓸모없게 만들 수 있습니까?

답변1

"링 버퍼"는 초기 메시지, 즉 syslog 데몬이 시작되기 전에 전송된 메시지를 기록하는 데 사용됩니다. 이는 실시간 운영체제에서 채택한 개념이다.

링 버퍼 데이터 구조는 커널 메모리의 (사전 할당된) 영역과 몇 개의 포인터입니다. 커널이 시작되자마자 로그하는 데 사용할 수 있습니다. 리소스 할당이 전혀 필요하지 않으며 이미 작동하는 것에 의존하지 않습니다. 시스템 시작에 "문제가 있는" 경우( rsyslogd부팅되지 않는 지점까지) dmesg이러한 초기 메시지가 나타나 도움이 될 수 있습니다.

Syslog 데몬은 시작되면 링 버퍼를 읽고 로그 항목을 생성/처리합니다.

나중에 시스템이 가동되어 실행되면 syslog 데몬은 정기적으로 버퍼링된 디스크 I/O를 수행하고, 로그 파일에 쓰고, 각 쓰기 후에 동기화합니다(참고자료 참조 man 3 fflush). 그러나 로그 파일 이름 앞에 " "이 있으면 -동기화는 디스크 버퍼링 방식에 맡깁니다.

관련 정보