跳转至主要内容

当OpenVOS中产生系统日志消息(所有的消息:硬件、安全、syserr等)时,它们会被发送到syserr分区,并通知一个事件。一个名为TheOverseer的进程正在等待这个事件,还有很多其他事件。

为了处理这个事件,TheOverseer就会从分区中读出消息,并将它们存储在其用户堆中。然后,它将消息写入模块控制台终端,将它们写入指定的日志,然后从用户堆中删除它们。如果2次写入中的任何一次不成功,消息就会留在用户堆中,以便以后重试。

该分区的大小是有限的。用户堆只能包含给定数量的日志信息。如果这些区域中的任何一个溢出,指定的日志文件被其他进程锁定以便写入,或者控制台终端被破坏,则会设置一个标志。这将导致现有的消息被覆盖,TheOverseer将输出**日志消息丢失**到syserr_log和控制台。

TheOverseer有很多任务需要完成。其中包括进程的创建和销毁、send_message类型的通信流量等,这些都会花费大量的时间和处理。如果这个进程很忙,那么它就不会经常为syserr事件机制提供服务,会导致syserr包裹。

任何导致大量信息被放入syserr分区的模块事件(例如:一次性停止很多进程,用户应用程序向syserr写入信息等)都会导致分区满员。出于这个原因,我们不建议用户应用程序使用syserr_log机制来保存站点特定的日志信息。用户应用程序应该使用自己的机制来包含特定应用程序的日志信息。

© 2024Stratus Technologies.