Residential College | false |
Status | 已發表Published |
Let It Go: Relieving Garbage Collection Pain for Latency Critical Applications in Golang | |
Zhao, Junxian1; Zhou, Xiaobo2; Chang, Sang-Yoon1; Xu, Cheng-Zhong2 | |
2023-08 | |
Conference Name | HPDC '23: Proceedings of the 32nd International Symposium on High-Performance Parallel and Distributed Computing |
Pages | 169–180 |
Conference Date | June 20-23, 2023 |
Conference Place | Orlando, FL |
Country | USA |
Publication Place | USA |
Publisher | ACM |
Abstract | Garbage Collection (GC) is a representative automatic memory manager widely deployed in popular programming languages, such as Java, C#, and Golang (Go). Through GC, these languages provide programmers with flexibility and safety. However, GC leads to non-trivial overhead in compute and memory resources during application runtime. GC threads compete with non-GC threads (mutators) of an application, which particularly impacts latencycritical (LC) applications and causes long tail latency. Existing GC approaches do not efficiently address the interference, as GC is triggered passively without a global insight of the application; or they employ incremental GC to reduce the interference, while the incremental progress is not dynamically tailored during GC process according to runtime characteristics, which leads to significant performance degradation upon bursty requests. We present LEGO, an efficient and non-intrusive GC framework that deploys a novel elastic incremental GC mechanism integrated with an adaptive GC scheduler to reduce CPU contention between GC and mutators, and improve resource utilization and QoS of LC applications. We choose to develop LEGO in Go, as Go is specifically designed for cloud applications and the current GC mechanisms for JVM are ineffective for Go due to its unique GPM thread scheduling and memory allocation model. LEGO adapts incremental GC into Go to tackle the full GC issue and addresses resource contention with a proactive scheduler for adaptive GC triggering. Importantly, LEGO leverages the elastic incremental GC mechanism in mitigating the interference from unavoidable GC in face of bursts of requests. We implement and evaluate LEGO with popular LC applications developed in Go. Results show that compared to the default Go GC and a tailored G1 GC, LEGO significantly improves both the tail latency and throughput for LC applications. |
Keyword | Golang (Go) Garbage Collection (Gc) Gc Scheduler Latency Critical (Lc) Tail Latency |
DOI | 10.1145/3588195.3592998 |
URL | View the original |
Language | 英語English |
Scopus ID | 2-s2.0-85169592296 |
Fulltext Access | |
Citation statistics | |
Document Type | Conference paper |
Collection | Faculty of Science and Technology THE STATE KEY LABORATORY OF INTERNET OF THINGS FOR SMART CITY (UNIVERSITY OF MACAU) |
Corresponding Author | Zhou, Xiaobo |
Affiliation | 1.University of Colorado Colorado Springs 2.University of Macau |
Corresponding Author Affilication | University of Macau |
Recommended Citation GB/T 7714 | Zhao, Junxian,Zhou, Xiaobo,Chang, Sang-Yoon,et al. Let It Go: Relieving Garbage Collection Pain for Latency Critical Applications in Golang[C], USA:ACM, 2023, 169–180. |
APA | Zhao, Junxian., Zhou, Xiaobo., Chang, Sang-Yoon., & Xu, Cheng-Zhong (2023). Let It Go: Relieving Garbage Collection Pain for Latency Critical Applications in Golang. , 169–180. |
Files in This Item: | There are no files associated with this item. |
Items in the repository are protected by copyright, with all rights reserved, unless otherwise indicated.
Edit Comment