NLog日誌寫文件的一個性能問題

在項目中,使用NLog記錄日誌,這是一個很正常的操作。

目前處理的一個項目中,有8個程序執行,每個都有日誌文件;然後由一個日誌記錄會比較頻繁,每秒有接近1M的日誌記錄,而且都20次,在開發的機器上,使用SSD固態硬盤,程序執行很正常。

發佈到服務器電腦上,其上的磁盤是機械磁盤,使用的是Info級別,發現在這樣的日誌量和頻率下,服務程序出現嚴重的問題,每次的服務響應有2秒之多;查找其他原因無果,後來把日誌的級別提高到Warn, 然後服務的響應就正常了。

在使用NLog之前,此服務程序使用自己的文件日誌實現庫,因爲其中有使用緩存,記錄日誌沒有問題。

然後在nlog的配置文檔上看到,也可以使用<targets async="true">來設置target的異步模式,這樣可以提高文件日誌性能。但在網絡上看到有日誌丟失的現象,應該是緩存區不足導致的。

結論: 對NLog的文件日誌,如果沒有緩存,使用機型磁盤,在大頻次和大日誌量的情況下,會對程序的性能造成極大的影響。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章