[Armadillo:08997] syslogdの挙動について

h.kondo email@hidden
2013年 7月 9日 (火) 18:40:19 JST


近藤と申します。

Armadillo440を使用し、syslogdによりSDカードに動作ログを出力しようとしています。 

syslogdについてご教示いただけますでしょうか。

一般的な情報を調べたところ、「プロセスからのログ出力が多すぎると、カーネル内のバッファが
一杯になり、syslogdがバッファから読み出して空きができるまでプロセスが待たされる」とのことで、
大量にログ出力をしないほうがよいと考えています。

上記内容に、誤りや勘違い等はありますでしょうか。

実際に、ログ出力が多い場合と、少ない場合で動作に違い(動作遅延の大小)が出ることも一応確認できています。

しかしながら、必要最低限のログ出力にしても、少なからず動作が遅延しているように見え、問題となっています。
一般的には、syslogdがfsync()することにより性能が低下するとのことで、fsync()をしないようにすればよいのではないか
と考えましたが、syslogdのソースを見ると、もともとfsync()をしていないようです。(正しいでしょうか)

対策として、カーネル内のバッファサイズを大きくして試してみたいと考えていますが、そのような事は可能でしょうか。
可能な場合、ご教示をお願いします。
また、デフォルトのバッファサイズはいくつなのでしょうか。

syslogd起動時のパラメータ”C”でメモリサイズを指定できるのかと思いましたが、 

指定すると、RAM上でサイクリックに書き換えられるようで、SDカードに出力されませんでした。

上記以外で何か対策案があればご教示いただけますでしょうか。

よろしくお願いします。 




armadillo メーリングリストの案内