2017-07-28 179 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