我正在尝试调查azure上作为应用程序服务部署的一个API中的可疑内存问题。我们看到,在某些长时间运行的操作中,内存会在一段时间内持续增加,并且应用程序变得太慢。
在使用azure内存转储工具运行该操作时,我收集了几个内存转储,并注意到准备完成的对象数量正在不断增加(15K,25k,28K,并且在整个过程完成后进行的处理表明100K)。据我所知,我怀疑这可能是终结器线程阻塞的情况。
当我查看所有转储的finalizer线程的调用堆栈时,很常见的一点是最后一个条目始终是“ ntdll!NtWaitForMultipleObjects”。
这是否意味着我的终结器线程被阻止了?还是正常?
下面是其中一个转储的屏幕快照,显示了终结器线程的完整调用堆栈。