應用裏面為了方便troubleshoot加了各種類型的log,Elasticsearch,APM,EF打印sql之類.
做性能測試的時候,很容易就内存飆高,導致IIS進程挂起來。
在siable了APM,并且log size和level做了各種限制后,記下的log file已經不會太大。
但IIS進程的内存占用率還是在飆升,create了dump后用 !dumpheap -stat 命令查看 ,大size的都是些 serilog object
最終確認是由於配置了 .Enrich.WithExceptionDetails() 引起的。
https://github.com/serilog/serilog/issues/1275
.Destructure.ToMaximumCollectionCount(10) // Default is int.MaxValue
.Destructure.ToMaximumStringLength(1024) // Default is int.MaxValue
.Destructure.ToMaximumDepth(5) // Default is 10
.Enrich.WithExceptionDetails(new DestructuringOptionsBuilder()
.WithDefaultDestructurers()
.WithIgnoreStackTraceAndTargetSiteExceptionFilter()
.WithDestructuringDepth(5) // default is 10
)