У меня странная проблема с. NET Core 3.0 при использовании регистраторов.
Приложение работает нормально на Windows, но когда я запускаю его на Linux (Debian 10) в качестве демона, оно просто продолжает занимать все больше и больше памяти. Проблема впервые проявилась, когда я использовал NLog, затем я переключился на Serilog, но проблема все еще здесь. Проблема не возникает, когда я удаляю NLog / Serilog.
Используя снимки памяти и Jetbrains dotMemory, все, что я получаю, это набор массивов sbyte, которые (вероятно) создаются NLog / Serilog.
Когда я отключаю ведение журнала в файл и оставляю только консольное ведение журнала - проблема исчезает!
Я пытался добавить ручные вызовы в сборщик мусора, но это не помогло.
Нам удалось создать обходной путь добавив параметр MemoryMax в файл .service. Кажется, что сборщик мусора начинает убирать, когда он приближается к максимальному пределу. (ie ограничение составляет 150 МБ, и теперь приложение удерживает 145 МБ).
Кто-нибудь знает, что может быть не так? Или я должен просто решить эту проблему с разработчиками NLog и Serilog.