Applying Control Theory in the Real World: Experience With Building a Controller for the .NET Thread Pool
Venue
Sigmetrics Performance Evaluation Review (2009), pp. 38-42
Publication Year
2009
Authors
Joseph L. Hellerstein, Vance Morrison, Eric Eilebrecht
BibTeX
Abstract
While much has been published about the value of using formal techniques from
control engineering to build software systems, little has been reported on software
engineering considerations for building closed loop systems, especially widely
deployed resource managers. This paper discusses the design, testing, and tuning of
a controller that optimizes concurrency levels in the .NET thread pool, a feature
that is present in approximately 1 billion computers that run the Windows Operating
System. Some of the issues we encountered are: (a) designing an extensible
controller that easily incorporates a diverse set of techniques; (b) creating a
scalable test infrastructure to address running a large number of test cases; (c)
providing test cases for which the optimal concurrency level is known a priori; and
(d) choosing settings of tuning parameters that result in good controller
performance for multiple evaluation criteria.
