Changes to Default Throttle Settings

I buried this in a previous update on changes in .Net 4 but here’s a more prominent description of how service throttles have changed. The ServiceThrottlingBehavior allows you to configure three settings that limit the resource consumption of a service. MaxConcurrentInstances limits the total number of copies of the service that will be instantiated to…


Warming a Cold Pool

The thread pool for asynchronous IO threads attempts to automatically regulate the number of idle threads to balance the resource consumption of threads with the responsiveness of servicing tasks. When there is not much work to be done, idle threads are spun down. When a surge of work comes in, new threads are spun up….


Debugging References with Graph Visualizations

Chris Lovett has a nice video demonstrating how to debug managed memory leaks by visualizing the runtime object reference graph produced by the gcroot debugger command. The graph visualization may help you spot cycles or other unexpected references that are causing the memory leak faster than reading through the gcroot output. I’ve seen other suggestions…


Fix for Gradual Debugger Slowdown

Visual Studio 2008 added a feature to automatically attach to a service in your solution when the code you’re debugging makes a request to that service. By automatically attaching to the service you’re able to stop on breakpoints in the service code without having to explicitly step into the other project. This debugger integration requires…


Fix for Slow IO Thread Startup

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…


What’s New in WCF 4: Performance

This list is a bit different in places from what you’ve seen in the beta 1 release and there’s always a chance that things might change again. The second part of the list covers some of the new features and changes to existing features to improve service performance. These performance features are tailored to specific…


Using TCP Analyzer to Debug TCP Performance

Microsoft Research has a Network Monitor 3.3 plugin called TCP Analyzer that helps identify performance problems from a captured TCP session. TCP Analyzer takes a Network Monitor trace and performs visualization and analysis of the TCP connection. The analysis tries to identify what factor is most limiting to the transfer rate of the TCP connection,…


Tuning ConnectionBufferSize

Poor network utilization for large TCP data transfers is often a symptom of an overly small ConnectionBufferSize. The ConnectionBufferSize is the size of the send and receive buffers used by the connection oriented transports, and in particular the TCP transport where the default size is 8 KB. If all of the following factors are present,…


CLR Beta 1 Survey

The CLR team has a survey for .Net 4.0 Beta 1 covering different aspects of performance, hosting, security, and application compatibility. If you’ve built new applications using beta 1 or you’ve tried recompiling or running older applications using beta 1 then you might have some useful feedback about the CLR. I’ve been relatively happy with…


WCF Load Test Tool 3.0 Beta

Rob Jarratt has updated the community-driven WCF load test tool with a new beta release. The test tool uses a trace captured from a previous run of a WCF service to automatically generate a test case that performs the same sequence of operations. This allows you to quickly turn a hand-crafted test into one that…