系统健康日志中的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.现在这听起来不太好。

什么是环形缓冲区?

环形缓冲区是用于线程间或进程间通信的固定大小的存储器。 本质上,信息被写入到环形缓冲区,当系统到达结束时,它又开始在开始处写入。 还有一个指向缓冲区当前头部的共享指针。

同时,阅读线索从一开始就读取,并试图跟上作者。 如果作家程序超越读者,那么事件/数据将会丢失,但至less你可以继续。

通常缓冲区的大小是这样的,除非发生坏事,否则不会发生。

当事件丢失不是致命的时候使用环形缓冲区,其他forms的队列pipe理有更大的问题。

这个事件是什么意思呢?

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

这不是一个错误。 这是详细的logging,告诉你它是怎么做的安全错误(例如login失败),以确保他们不会迷路。