GC жрёт 100% CPU
От: MadHuman Россия  
Дата: 30.04.19 08:24
Оценка:
Всем привет!
Есть сервис, asp.net под IIS, .Net (не Core). Нагрзука относительно небольшая — 30 запросов/сек, в штатном режиме процесс w3wp потребляет 4-5ГБ озу, 20-40% CPU.
Всё работает норм, уже не 1-й год. И вот некоторое время назад, случилось что 2 раза рабочий процесс начинал потреблять 100% CPU, аномально много памяти (>12ГБ), такое продолжалось минут 10, обработка реквестов практически умирала, рабочий процесс приходилось рестартовать.
При последнем таком разе удалось выяснить что CPU потребляли потоки GC и практически вся потреблённая память — в .Net Generation 2 (при помощи ProcessExplorer).


Как такое возможно?
Что и как вдруг может начать (при казалось бы обычной нагрузке — но это нельзя утверждать 100%) производить столько мусора, что все ресурсы уходят на его сборку?
Странно и то, что раз в основном долгое время работают потоки GC (на них почти 100% cpu), то рабочие потоки простаивают и не способны уже генерировать мусор..
Кто тогда создаёт мусор для сборки, да ещё в таком кол-ве чтоб 4 потока GC столько времени (10 минут) его собирали?...
Или это глюк какой-то в .Net?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.