1

組み込みのfirebirdを利用するアプリケーションがあります。IIS には、このアプリケーションの 5 つのインスタンスがすべて同じアプリケーション プールにあります。

プール内のサイトの 1 つが停止またはリサイクルされると、他の 4 つの Web サイトには、実行中のコアの CPU を 100% 使用するスレッドがそれぞれ作成されます (既存のスレッドの新しいスレッドかどうかはわかりません)。 100% にジャンプします) . したがって、4 つのコアの 100% の CPU を使用する 4 つのスレッドがあります。

Process Explorer を使用して、詳細を調べてみました。すべてのスレッドには、ほとんど次のようなコール スタックがあります。

ntoskrnl.exe!KiCpuId+0xb6
ntoskrnl.exe!KeWaitForMutexObject+0x13c0
ntoskrnl.exe!KeUpdateRunTime+0x51
ntdll.dll!NtWaitForSingleObject+0xa
KERNELBASE.dll!WaitForSingleObjectEx+0x9a
fbembed.dll!BLOB_edit+0x3430c
fbembed.dll!BLOB_edit+0x1faa6c
fbembed.dll!BLOB_edit+0x1fb5f9
fbembed.dll!isc_dsql_execute_immediate+0x1c1
MSVCR80.dll!endthreadex+0x47
MSVCR80.dll!endthreadex+0x104
KERNEL32.DLL!BaseThreadInitThunk+0x1a
ntdll.dll!RtlUserThreadStart+0x21

これは、IIS7 および IIS8 で実行されており、.NET フレームワークのバージョンは 2.0 です。

4

0 に答える 0