2017-07-28 131 views
2

我有一个web服务器,其中log4net.Appender.AppenderSkeleton.DoAppend方法在使用ADO Net Appender时随机时间一直很慢。我找不到任何证据表明我的数据库服务器当时处于故障状态,但此方法突然开始需要2分钟,然后突然恢复到即时状态。log4net.Appender.AppenderSkeleton.DoAppend会极其缓慢

经过大量的谷歌搜索,这似乎并不是一个常见问题,所以我转向使用StackOverflow来查看是否有其他人遇到过这样的缓慢现象,并且看看是否有人对如何解决有任何建议它?

+0

您记录事件的速度有多快?是否有可能比数据库可以处理事件更快地记录事件?你怎么知道这是DoAppend方法很慢? – sgmoore

+0

每分钟记录大约96,000个事件。这个问题似乎每隔几天就会发生一次,然后自行清除,而无需应用程序池回收或iis重置等。我可以在App Dynamics中看到DoAppend方法运行缓慢,但SendBuffer方法在问题期间是即时的,600+ SP调用时间少于2秒,所以我没有看到数据库处于紧张状态。缓冲区大小目前为100,但当它被设置为10时发生了相同的问题。 – KB54

回答

1

ADO.NET appender可以做缓冲。检查配置中的buffersize。缓慢时,可能需要缓冲。尝试更小的缓冲区大小。

+0

感谢Peter的建议。你会建议尝试一个1的缓冲区大小吗?我已经将缓冲区大小从10增加到100,并且在这两个值之间存在许多值,并且相同问题最终发生在所有设置上,而在发生问题的时间长度与更高或更低缓冲区大小之间没有明显的模式。 – KB54