A Perfect Knob to Scale Thread Pool on Runtime
Source abstract
Abstract
Scalability is one of the utmost nonfunctional requirement of server applications, because it maintains an effective performance parallel to the large fluctuating and sometimes unpredictable workload. In order to achieve scalability, thread pool system (TPS) has been used extensively as a middleware service in server applications. The size of thread pool is the most significant factor, that affects the overall performance of servers. Determining the optimal size of thread pool dynamically on runtime is a challenging problem. The most widely used and simple method to tackle this problem is to keep the size of thread pool equal to the request rate, i.e., the frequency-oriented thread pool (FOTP). The FOTPs are the most widely used TPSs in the industry, because of the implementation simplicity, the negligible overhead and the capability to use in any system. However, the frequency-based schemes only focused on one aspect of changes in the load, and that is the fluctuations in request rate. The request rate alone is an imperfect knob to scale thread pool. Thus, this paper presents a workload profiling based FOTP, that focuses on request size (service time of request) besides the request rate as a knob to scale thread pool on runtime, because we argue that the combination of both truly represents the load fluctuation in server-side applications. We evaluated the results of the proposed system against state of the art TPS of Oracle Corporation (by a client-server-based simulator) and concluded that our system outperformed in terms of both; the response times and throughput.
Source: openalex_inverted_index · Quality: baseline
Research context
OpenAlex topics: Cloud Computing and Resource Management · Parallel Computing and Optimization Techniques · Distributed and Parallel Computing Systems
SciVX discovery tags are terminology-based. OpenAlex topics are source-provided classifications.
References (33)
Show source-provided references
1. Comparative study of IoT-based topology maintenance protocol in a wireless sensor network for structural health monitoring10.3390/rs12152358 ↗
2. Scalability issues in online social networks10.1145/2968216 ↗
3. Early performance testing of distributed software applications
4. A survey of middleware for sensor network and challenges
5. Performance testing of distributed component architectures
6. Improving service time with a multicore aware middleware
7. A data transfer framework for large-scale science experiments
8. A kalman filter based hill-climbing strategy for application server configuration
9. Staging based task execution for data-driven, in-situ scientific workflows
10. Towards the concurrent optimization of the server: A case study on sport health simulation10.1155/2021/5587170 ↗
11. Autoscale: Dynamic, robust capacity management for multi-tier data centers10.1145/2382553.2382556 ↗
12. 2dfq: Two-dimensional fair queuing for multi-tenant cloud services
13. F. Muscarella, “Method and apparatus for dynamically adjusting thread pool,” US Patent No. 8185906B2, U.S. Patent and Trademark Office, 2012.
14. Soft memory box: A virtual shared memory framework for fast deep neural network training in distributed high-performance computing10.1109/ACCESS.2018.2834146 ↗
15. A dynamic adjustment mechanism with heuristic for thread pool in middleware
16. ADAPT-T: An adaptive algorithm for auto-tuning worker thread pool size in application servers
17. Combining fine-grained analysis and scheduling to smooth response time fluctuations in multi-tier services
18. Performance study and dynamic optimization design for thread pool systems
19. Dynamic thread count adaptation for multiple services in SMP environments
20. Applying control theory in the real world: Experience with building a controller for the net thread pool10.1145/1710115.1710123 ↗
21. Prediction-based dynamic thread pool management of agent platform for ubiquitous computing
22. Prediction-based dynamic thread pool scheme for efficient resource usage
23. A novel predictive and self-adaptive dynamic thread pool management
24. Configuring resource managers using model fuzzing: A case study of the .NET thread pool
25. Towards optimal thread pool configuration for run-time systems of integration platforms10.1504/IJCAT.2020.104692 ↗
26. Class ThreadPoolExecutor. [Online]. Available: https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ThreadPoolExecutor.html (19th October 2021).
27. Class WaterMarkExecutor. [Online]. Available: https://axis.apache.org/axis2/java/core/apidocs/org/apache/axis2/transport/base/threads/watermark/WaterMarkExecutor.html (19th October 2021).
28. Adjusting middleware knobs to assess scalability limits of distributed cyber-physical systems10.1016/j.csi.2016.11.003 ↗
29. Experimental evaluation of improved IoT middleware for flexible performance and efficient connectivity10.1016/j.adhoc.2017.11.005 ↗
30. Design of hierarchical thread pool executor for dsm
31. A proposal for cost-effective server usage in CPS in the presence of dynamic client requests
32. Optimizing n-tier application scalability in the cloud: A study of soft resource allocation
33. jPoolRunnerTM. “Performance testing simulation tool,” [Online]. Available: http://jpoolrunner.net/ (19th October 2021).