A Simple Throttling Concept for Multithreaded Application Servers
Independent thesis Advanced level (degree of Master (One Year))Student thesis
Multithreading is today a very common technology to achieve concurrency within software. Today there exists three commonly used threading strategies for multithreaded application servers. These are thread per client, thread per request and thread pool. Earlier studies has shown that the choice of threading strategy is not that important. Our measurements show that the choice of threading architecture becomes more important when the application comes under high load. We will in this study present a throttling concept which can give thread per client almost as good qualities as the thread pool strategy when it comes to performance. No architecture change is required. This concept has been evaluated on three types of hardware, ranging from 1 to 64 CPUs, using 6 alternatives loads and both in C and Java. We have also identified that there is a high correlation between average response times and the length of the run time queue. This can be used to construct a self tuning throttling algorithm that makes the introduction of the throttle concept even simpler, since it does require any configuring.
Place, publisher, year, edition, pages
2009. , 36 p.
throttling, multithreaded, server
IdentifiersURN: urn:nbn:se:bth-2840Local ID: oai:bth.se:arkivexD0952C969F85BDC9C12576AC002C3DBBOAI: oai:DiVA.org:bth-2840DiVA: diva2:830135