系统健康日志中记录的 security_error_ring_buffer_recorded - 这是什么意思?

系统健康日志中记录的 security_error_ring_buffer_recorded - 这是什么意思?

我们公司为几个网站运行了几台服务器。服务器运行的是 Windows Server 2012,数据库使用的是 MS SQL Server 2012。

今天我检查了位于以下位置的日志文件:

"C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Log"

我在名为“system_health”的事件日志中发现了这个奇怪的事情:

security_error_ring_buffer_recorded

点击它后,我得到了更多信息:

api_name            ImpersonateSecurityContext
call_stack          0x6E2715B4FB0700007C36FBB3FB070000A553FBB3FB070000... <- this one continues forever
calling_api_name    NLShimImpersonate
error_code          5023
id                  0
session_id          51
time_stamp          190360

如果不是“错误”和“记录”部分,我就不会这么烦恼了......这听起来不太好。

这种事件每天每小时都会发生,有时候间隔几分钟,而其他时候则在几秒钟内发生一百次。

这是我第一次检查这些日志文件。

有人能向我解释一下这是什么以及如何“修复”它(如果有必要的话)吗?

编辑:

除了这个活动之外,还有一个名为:

"scheduler_monitor_system_health_ring_buffer_recorded"

单击它后显示“page_faults”为 8913。这听起来也不太好。

答案1

什么是环形缓冲区?

环形缓冲区是用于线程间或进程间通信的固定大小的内存。本质上,信息被写入环形缓冲区,当系统到达末尾时,它会再次从头开始写入。还有一个指向缓冲区当前头部的共享指针。

同时,读取线程从头开始读取,并尝试跟上写入器的速度。如果写入器进程超过读取器,则事件/数据将丢失,但至少您可以继续。

一般来说,缓冲区的大小是这样的,除非发生坏事,否则这种情况不会发生。

环形缓冲区用于丢失事件并不致命的情况,而其他形式的队列管理则存在更大的问题。

那么这一事件意味着什么?

这意味着有一个环形缓冲区,正在向其中写入安全错误。另一个线程正在读取环形缓冲区,并将信息记录到日志文件中。这正是应该发生的事情。

这不是一个错误。这是详细的日志记录,告诉您它如何处理安全错误(例如登录失败)以确保它们不会丢失。

相关内容