Я пытаюсь исследовать подозрительную проблему с памятью в одном из наших API, развернутых в Azure в качестве службы приложений. Мы видим, что во время некоторых длительных операций память постоянно увеличивается в течение определенного периода времени, и приложение становится слишком медленным.
Я собрал пару дампов памяти во время выполнения операции с помощью инструмента дампа памяти Azure и заметил, что число объектов, готовых к финализации, постоянно увеличивается (15 К, 25 К, 28 К, и тот, который был получен после завершения всего процесса, показал100K).С моим ограниченным знанием, я подозреваю, что это может быть случай заблокированного потока финализатора.
Когда я просматриваю стек вызовов потока финализатора для всех дампов, часто встречается одна вещь: последняя запись всегда "ntdll! NtWaitForMultipleObjects".
Означает ли это, что мой поток финализаторазаблокирован?Или это нормально?
Ниже приведен скриншот из одного из дампов, показывающий полный стек вызовов для потока финализатора.