[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
article

One Profile Fits All: Profile-Guided Linux Kernel Optimizations for Data Center Applications

Published: 14 June 2022 Publication History

Abstract

Modern data center applications have multi-megabyte instruc- tion footprints that easily exhaust on-chip cache structures, which typically have a size of only a couple hundred kilobytes. Consequently, today's data center applications suffer from frequent Instruction cache (I-cache) and Instruction Transla- tion Lookaside Buffer (I-TLB) misses, causing performance losses worth millions of dollars. To make matters worse, the multi-megabyte instruction footprint of the Linux kernel pre- cipitates an undue burden on the performance of data center applications.

References

[1]
Clang c language family frontend for llvm. [Online; accessed 19-Nov-2021].
[2]
Github - akopytov/sysbench: Scriptable database and system performance benchmark. https://github.com/akopytov/sysbench.
[3]
Github - antirez/mc-benchmark: Memcache port of redis benchmark. https://github.com/antirez/mc-benchmark.
[4]
Github - benchmarking tools: facebook/rocksdb wiki. https://github.com/facebook/rocksdb/wiki/Benchmarkingtools.
[5]
Profile-guided optimization for the kernel. https://lwn.net/Articles/830300/.
[6]
Redis benchmark - redis. https://redis.io/docs/reference/optimization/benchmarks/.
[7]
Optimizing linux kernel with bolt. https://lpc.events/event/11/contributions/974/, 2021.
[8]
Grant Ayers, Jung Ho Ahn, Christos Kozyrakis, and Parthasarathy Ranganathan. Memory hierarchy for web search. In 2018 IEEE International Symposium on High Performance Computer Architecture (HPCA), pages 643--656. IEEE, 2018.
[9]
Grant Ayers, Nayana Prasad Nagendra, David I August, Hyoun Kyu Cho, Svilen Kanev, Christos Kozyrakis, Trivikram Krishnamurthy, Heiner Litz, Tipp Moseley, and Parthasarathy Ranganathan. Asmdb: understanding and mitigating front-end stalls in warehouse-scale computers. In Proceedings of the 46th ISCA, 2019.
[10]
Dominique Chanet, Bjorn De Sutter, Bruno De Bus, Ludo Van Put, and Koen De Bosschere. System-wide compaction and specialization of the linux kernel. In Proceedings of the 2005 ACM SIGPLAN/SIGBED con- ference on Languages, compilers, and tools for embed- ded systems, pages 95--104, 2005.
[11]
Dehao Chen, Tipp Moseley, and David Xinliang Li. Autofdo: Automatic feedback-directed optimization for warehouse-scale applications. In CGO, 2016.
[12]
Michael Ferdman, Almutaz Adileh, Onur Kocberber, Stavros Volos, Mohammad Alisafaee, Djordje Jevdjic, Cansu Kaynak, Adrian Daniel Popescu, Anastasia Ailamaki, and Babak Falsafi. Clearing the clouds: a study of emerging scale-out workloads on modern hardware. Acm sigplan notices, 47(4):37--48, 2012.
[13]
Google. Propeller: Profile guided optimizing large scale llvm-based relinker. https://github.com/google/ llvm-propeller, 2020.
[14]
Wenlei He, Julián Mestre, Sergey Pupyrev, Lei Wang, and Hongtao Yu. Profile inference revisited. Pro- ceedings of the ACM on Programming Languages, 6(POPL):1--24, 2022.
[15]
Svilen Kanev, Juan Pablo Darago, Kim Hazelwood, Parthasarathy Ranganathan, Tipp Moseley, Gu-Yeon Wei, and David Brooks. Profiling a warehouse-scale computer. In Proceedings of the 42nd ISCA, 2015.
[16]
Tanvir Ahmed Khan, Dexin Zhang, Akshitha Sriraman, Joseph Devietti, Gilles Pokam, Heiner Litz, and Baris Kasikci. Ripple: Profile-guided instruction cache replacement for data center applications. In Proceed- ings (to appear) of the 48th International Symposium on Computer Architecture (ISCA), ISCA 2021, June 2021.
[17]
Rahman Lavaee, John Criswell, and Chen Ding. Codestitcher: inter-procedural basic block layout optimization. In Proceedings of the 28th International Conference on Compiler Construction, pages 65--75, 2019. 31
[18]
Chi-Tai Lee, Jim-Min Lin, Zeng-Wei Hong, and Wei- Tsong Lee. An application-oriented linux kernel customization for embedded systems. J. Inf. Sci. Eng., 20(6):1093--1107, 2004.
[19]
David Xinliang Li, Raksit Ashok, and Robert Hundt. Lightweight feedback-directed cross-module optimization. In Proceedings of the 8th annual IEEE/ACM inter- national symposium on Code generation and optimiza- tion, pages 53--61, 2010.
[20]
C-K Luk, Robert Muth, Harish Patil, Robert Cohn, and Geoff Lowney. Ispike: a post-link optimizer for the intel/spl reg/itanium/spl reg/architecture. In Interna- tional Symposium on Code Generation and Optimiza- tion, 2004. CGO 2004., pages 15--26. IEEE, 2004.
[21]
Angélica Aparecida Moreira, Guilherme Ottoni, and Fernando Magno Quintão Pereira. Vespa: static profiling for binary optimization. Proceedings of the ACM on Programming Languages, 5(OOPSLA):1--28, 2021.
[22]
Guilherme Ottoni. Hhvm jit: A profile-guided, regionbased compiler for php and hack. In Proceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 151--165, 2018.
[23]
Guilherme Ottoni and Bin Liu. Hhvm jump-start: Boosting both warmup and steady-state performance at scale. In 2021 IEEE/ACM International Symposium on Code Generation and Optimization (CGO), pages 340--350. IEEE.
[24]
Guilherme Ottoni and Bertrand Maher. Optimizing function placement for large-scale data-center applications. In 2017 IEEE/ACM International Symposium on Code Generation and Optimization (CGO), pages 233--244. IEEE, 2017.
[25]
Maksim Panchenko, Rafael Auler, Bill Nell, and Guilherme Ottoni. Bolt: a practical binary optimizer for data centers and beyond. In 2019 IEEE/ACM Interna- tional Symposium on Code Generation and Optimiza- tion (CGO), pages 2--14. IEEE, 2019.
[26]
Maksim Panchenko, Rafael Auler, Laith Sakka, and Guilherme Ottoni. Lightning bolt: powerful, fast, and scalable binary optimization. In Proceedings of the 30th ACM SIGPLAN International Conference on Compiler Construction, pages 119--130, 2021.
[27]
Somu Perianayagam, HaiFeng He, Mohan Rajagopalan, Gregory Andrews, and Saumya Debray. Profile-guided specialization of an operating system kernel. In Proc. Workshop on Binary Instrumentation and Applications, 2006.
[28]
Karl Pettis and Robert C Hansen. Profile guided code positioning. In Proceedings of the ACM SIGPLAN 1990 conference on Programming language design and imple- mentation, pages 16--27, 1990.
[29]
Mohan Rajagopalan, Somu Perinayagam, HaiFeng He, Gregory Andrews, and Saumya Debray. Binary rewriting of an operating system kernel. In Proc. Workshop on Binary Instrumentation and Applications, 2006.
[30]
Akshitha Sriraman, Abhishek Dhanotia, and Thomas F Wenisch. Softsku: Optimizing server architectures for microservice diversity@ scale. In Proceedings of the 46th International Symposium on Computer Architec- ture, pages 513--526, 2019.
[31]
David W Wall. Predicting program behavior using real or estimated profiles. ACM SIGPLAN Notices, 26(6):59-- 70, 1991.
[32]
Wikipedia contributors. Apachebench - Wikipedia, the free encyclopedia. https: //en.wikipedia.org/w/index.php?title= ApacheBench&oldid=1061230570, 2021. [Online; accessed 3-April-2022].
[33]
Wikipedia contributors. Leveldb - Wikipedia, the free encyclopedia. https://en.wikipedia.org/ w/index.php?title=LevelDB&oldid=1060026512, 2021. [Online; accessed 3-April-2022].
[34]
Wikipedia contributors. Perf (linux) - Wikipedia, the free encyclopedia. https://en.wikipedia. org/w/index.php?title=Perf_(Linux)&oldid= 1035926020, 2021. [Online; accessed 3-April-2022].
[35]
Wikipedia contributors. Apache http server - Wikipedia, the free encyclopedia. https: //en.wikipedia.org/w/index.php?title= Apache_HTTP_Server&oldid=1079941743, 2022. [Online; accessed 3-April-2022].
[36]
Wikipedia contributors. Gcov - Wikipedia, the free encyclopedia. https://en.wikipedia.org/w/ index.php?title=Gcov&oldid=1066269648, 2022. [Online; accessed 3-April-2022].
[37]
Wikipedia contributors. Memcached - Wikipedia, the free encyclopedia. https://en.wikipedia.org/w/ index.php?title=Memcached&oldid=1064747973, 2022. [Online; accessed 3-April-2022].
[38]
Wikipedia contributors. Mysql - Wikipedia, the free encyclopedia. https://en.wikipedia.org/w/ index.php?title=MySQL&oldid=1080373897, 2022. [Online; accessed 3-April-2022]. 32
[39]
Wikipedia contributors. Nginx - Wikipedia, the free encyclopedia. https://en.wikipedia.org/w/ index.php?title=Nginx&oldid=1077266637, 2022. [Online; accessed 3-April-2022].
[40]
Wikipedia contributors. Postgresql - Wikipedia, the free encyclopedia. https://en.wikipedia. org/w/index.php?title=PostgreSQL&oldid= 1076044937, 2022. [Online; accessed 3-April-2022].
[41]
Wikipedia contributors. Redis - Wikipedia, the free encyclopedia. https://en.wikipedia.org/w/ index.php?title=Redis&oldid=1075238126, 2022. [Online; accessed 3-April-2022].
[42]
Wikipedia contributors. Rocksdb - Wikipedia, the free encyclopedia. https://en.wikipedia.org/ w/index.php?title=RocksDB&oldid=1077997787, 2022. [Online; accessed 3-April-2022].
[43]
Pengfei Yuan, Yao Guo, and Xiangqun Chen. Experiences in profile-guided operating system kernel optimization. In Proceedings of 5th Asia-Pacific Workshop on Systems, APSys '14, pages 4:1--4:6, New York, NY, USA, 2014. ACM.
[44]
Pengfei Yuan, Yao Guo, and Xiangqun Chen. Rethinking compiler optimizations for the linux kernel: An explorative study. In Proceedings of the 6th Asia-Pacific Workshop on Systems, APSys '15, pages 2:1--2:7, New York, NY, USA, 2015. ACM.
[45]
Pengfei Yuan, Yao Guo, Lu Zhang, Xiangqun Chen, and Hong Mei. Building application-specific operating systems: a profile-guided approach. Science China Information Sciences, 61(9):092102, Aug 2018.
[46]
Mingzhou Zhou, Bo Wu, Yufei Ding, and Xipeng Shen. Profmig: A framework for flexible migration of program profiles across software versions. In Proceedings of the 2013 IEEE/ACM International Symposium on Code Generation and Optimization (CGO), pages 1--12. IEEE, 2013.
[47]
Yufeng Zhou, Xiaowan Dong, Alan L Cox, and Sandhya Dwarkadas. On the impact of instruction address translation overhead. In 2019 IEEE International Sympo- sium on Performance Analysis of Systems and Software (ISPASS), pages 106--116. IEEE, 2019.

Cited By

View all
  • (2023)Breaking Triopoly to Achieve Sustainable Smart Digital Infrastructure Based on Open-Source Diffusion Using Government–Platform–User Evolutionary GameSustainability10.3390/su15191441215:19(14412)Online publication date: 1-Oct-2023
  • (2023)Discussion on Intrusion and Defense Technology of Computer Network Server with Linux2023 3rd International Conference on Smart Data Intelligence (ICSMDI)10.1109/ICSMDI57622.2023.00040(173-176)Online publication date: Mar-2023
  • (2022)Whisper: Profile-Guided Branch Misprediction Elimination for Data Center ApplicationsProceedings of the 55th Annual IEEE/ACM International Symposium on Microarchitecture10.1109/MICRO56248.2022.00017(19-34)Online publication date: 1-Oct-2022

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM SIGOPS Operating Systems Review
ACM SIGOPS Operating Systems Review  Volume 56, Issue 1
SIGOPS
June 2022
76 pages
ISSN:0163-5980
DOI:10.1145/3544497
Issue’s Table of Contents
Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for third-party components of this work must be honored. For all other uses, contact the Owner/Author.

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 14 June 2022
Published in SIGOPS Volume 56, Issue 1

Check for updates

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)72
  • Downloads (Last 6 weeks)10
Reflects downloads up to 27 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2023)Breaking Triopoly to Achieve Sustainable Smart Digital Infrastructure Based on Open-Source Diffusion Using Government–Platform–User Evolutionary GameSustainability10.3390/su15191441215:19(14412)Online publication date: 1-Oct-2023
  • (2023)Discussion on Intrusion and Defense Technology of Computer Network Server with Linux2023 3rd International Conference on Smart Data Intelligence (ICSMDI)10.1109/ICSMDI57622.2023.00040(173-176)Online publication date: Mar-2023
  • (2022)Whisper: Profile-Guided Branch Misprediction Elimination for Data Center ApplicationsProceedings of the 55th Annual IEEE/ACM International Symposium on Microarchitecture10.1109/MICRO56248.2022.00017(19-34)Online publication date: 1-Oct-2022

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media