リングバッファ、メッセージキュー、書き込みバッファは同じですか?それ以外の場合、リングバッファ、キュー、および書き込みバッファは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
)。ただし、ログファイル名の前に ""がある場合、同期-
はディスクバッファリング方式に委ねられます。