The CLR team has recently released a fix for slow startup of asynchronous IO threads that may affect WCF users. After startup, asynchronous IO threads are created at a slow pace to avoid spikes in the number of threads. Having extra idle threads consume system resources needlessly. Having too few available threads creates a performance bottleneck as requests take longer to process and there is a delay in spinning up new threads.
Calling ThreadPool.SetMinThreads is supposed to preserve a minimum number of worker threads (the second parameter represents the number of idle asynchronous IO threads that will be maintained). However, the problem is that the application may still wait while the CLR tries to create more threads.
The published fix doesn't provide a diagnosis for WCF users but here's what I've come up with.
This issue is probably not the problem if any of the following are true:
You can get the fix from KB article 976898.