{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,12,2]],"date-time":"2025-12-02T03:28:09Z","timestamp":1764646089524,"version":"3.45.0"},"reference-count":87,"publisher":"Association for Computing Machinery (ACM)","issue":"2","license":[{"start":{"date-parts":[[2016,5,5]],"date-time":"2016-05-05T00:00:00Z","timestamp":1462406400000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"name":"Google PhD Fellowship"},{"name":"Stanford Experimental Datacenter Lab"},{"name":"NSF","award":["CNS-1422088"],"award-info":[{"award-number":["CNS-1422088"]}]},{"DOI":"10.13039\/100027065","name":"Google research","doi-asserted-by":"crossref","id":[{"id":"10.13039\/100027065","id-type":"DOI","asserted-by":"crossref"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Comput. Syst."],"published-print":{"date-parts":[[2016,5,5]]},"abstract":"<jats:p>User-facing, latency-sensitive services, such as websearch, underutilize their computing resources during daily periods of low traffic. Reusing those resources for other tasks is rarely done in production services since the contention for shared resources can cause latency spikes that violate the service-level objectives of latency-sensitive tasks. The resulting under-utilization hurts both the affordability and energy efficiency of large-scale datacenters. With the slowdown in technology scaling caused by the sunsetting of Moore\u2019s law, it becomes important to address this opportunity.<\/jats:p>\n                  <jats:p>We present Heracles, a feedback-based controller that enables the safe colocation of best-effort tasks alongside a latency-critical service. Heracles dynamically manages multiple hardware and software isolation mechanisms, such as CPU, memory, and network isolation, to ensure that the latency-sensitive job meets latency targets while maximizing the resources given to best-effort tasks. We evaluate Heracles using production latency-critical and batch workloads from Google and demonstrate average server utilizations of 90% without latency violations across all the load and colocation scenarios that we evaluated.<\/jats:p>","DOI":"10.1145\/2882783","type":"journal-article","created":{"date-parts":[[2016,5,5]],"date-time":"2016-05-05T09:23:22Z","timestamp":1462440202000},"page":"1-33","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":47,"title":["Improving Resource Efficiency at Scale with Heracles"],"prefix":"10.1145","volume":"34","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-2585-5473","authenticated-orcid":false,"given":"David","family":"Lo","sequence":"first","affiliation":[{"name":"Google Inc., Stanford University, Mountain View, CA"}]},{"given":"Liqun","family":"Cheng","sequence":"additional","affiliation":[{"name":"Google Inc., Mountain View, CA"}]},{"given":"Rama","family":"Govindaraju","sequence":"additional","affiliation":[{"name":"Google Inc., Mountain View, CA"}]},{"given":"Parthasarathy","family":"Ranganathan","sequence":"additional","affiliation":[{"name":"Google Inc., Mountain View, CA"}]},{"given":"Christos","family":"Kozyrakis","sequence":"additional","affiliation":[{"name":"Stanford University, Stanford, CA"}]}],"member":"320","published-online":{"date-parts":[[2016,5,5]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1145\/1402958.1402967"},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1145\/1851182.1851192"},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1109\/MC.2007.443"},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.5555\/2534500"},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.5555\/2685048.2685053"},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.5555\/2002181.2002182"},{"key":"e_1_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.5555\/2685048.2685071"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.5555\/993483"},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1145\/1232919.1232926"},{"key":"e_1_2_1_10_1","unstructured":"Martin A. Brown. 2006. Traffic Control HOWTO. Retrieved from http:\/\/linux-ip.net\/articles\/Traffic-Control-HOWTO\/."},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/2670979.2670999"},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/2485922.2485949"},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/2670979.2670981"},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/2408776.2408794"},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/2451116.2451125"},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1145\/2541940.2541941"},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1145\/1736020.1736058"},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.1145\/2000064.2000108"},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1145\/2038916.2038938"},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.5555\/1972549"},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/1241601.1241608"},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1109\/MICRO.2007.6"},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1109\/MM.2011.77"},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/1152154.1152161"},{"key":"e_1_2_1_25_1","unstructured":"Intel. 2003. Serial ATA II Native Command Queuing Overview. Retrieved from http:\/\/download.intel.com\/ support\/chipsets\/imsm\/sb\/sata2_ncq_overview.pdf."},{"volume-title":"Intel\u00ae64 and IA-32 architectures software developer\u2019s manual. 3B: System Programming Guide, Part 2 (Sep","year":"2014","key":"e_1_2_1_26_1","unstructured":"Intel. 2014. Intel\u00ae64 and IA-32 architectures software developer\u2019s manual. 3B: System Programming Guide, Part 2 (Sep 2014)."},{"key":"e_1_2_1_27_1","unstructured":"iperf. 2011. Iperf - The TCP\/UDP Bandwidth Measurement Tool. Retrieved from https:\/\/iperf.fr\/."},{"key":"e_1_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.5555\/1952077"},{"key":"e_1_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.1145\/1006209.1006246"},{"key":"e_1_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1145\/1254882.1254886"},{"key":"e_1_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1145\/1816038.1816002"},{"key":"e_1_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/2228360.2228513"},{"key":"e_1_2_1_33_1","doi-asserted-by":"publisher","DOI":"10.5555\/2482626.2482656"},{"key":"e_1_2_1_34_1","doi-asserted-by":"crossref","unstructured":"Svilen Kanev Kim Hazelwood Gu-Yeon Wei and David Brooks. 2014. Tradeoffs between power management and tail latency in warehouse-scale applications. In IISWC.","DOI":"10.1109\/IISWC.2014.6983037"},{"key":"e_1_2_1_35_1","doi-asserted-by":"publisher","DOI":"10.1145\/2391229.2391238"},{"key":"e_1_2_1_36_1","doi-asserted-by":"publisher","DOI":"10.1145\/2541940.2541944"},{"key":"e_1_2_1_37_1","volume-title":"Proceeding of the IEEE 14th International Symposium on High Performance Computer Architecture, 2008","author":"Kim Wonyoung","year":"2008","unstructured":"Wonyoung Kim, M. S. Gupta, Gu-Yeon Wei, and D. Brooks. 2008. System level analysis of fast, per-core DVFS using on-chip switching regulators. In Proceeding of the IEEE 14th International Symposium on High Performance Computer Architecture, 2008 (HPCA\u201908). DOI:http:\/\/dx.doi.org\/10.1109\/ HPCA.2008.4658633"},{"key":"e_1_2_1_38_1","volume-title":"Proceeding of the International Conference in Machine Learning.","author":"Le Quoc","year":"2012","unstructured":"Quoc Le, Marc\u2019Aurelio Ranzato, Rajat Monga, Matthieu Devin, Kai Chen, Greg Corrado, Jeff Dean, and Andrew Ng. 2012. Building high-level features using large scale unsupervised learning. In Proceeding of the International Conference in Machine Learning."},{"key":"e_1_2_1_39_1","doi-asserted-by":"publisher","DOI":"10.1145\/2592798.2592821"},{"key":"e_1_2_1_40_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.jpdc.2010.10.013"},{"key":"e_1_2_1_41_1","doi-asserted-by":"publisher","DOI":"10.1145\/2485922.2485926"},{"key":"e_1_2_1_42_1","doi-asserted-by":"publisher","DOI":"10.1109\/HPCA.2012.6168955"},{"key":"e_1_2_1_43_1","doi-asserted-by":"publisher","DOI":"10.1109\/HPCA.2008.4658653"},{"key":"e_1_2_1_44_1","doi-asserted-by":"publisher","DOI":"10.1109\/DASC.2011.87"},{"key":"e_1_2_1_45_1","doi-asserted-by":"publisher","DOI":"10.5555\/1855591.1855601"},{"key":"e_1_2_1_46_1","doi-asserted-by":"publisher","DOI":"10.1145\/2678373.2665719"},{"key":"e_1_2_1_47_1","doi-asserted-by":"publisher","DOI":"10.5555\/2665671.2665718"},{"key":"e_1_2_1_48_1","doi-asserted-by":"publisher","DOI":"10.1145\/2749469.2749475"},{"key":"e_1_2_1_49_1","doi-asserted-by":"publisher","DOI":"10.1145\/2366231.2337164"},{"key":"e_1_2_1_50_1","doi-asserted-by":"publisher","DOI":"10.5555\/2337159.2337208"},{"key":"e_1_2_1_51_1","doi-asserted-by":"publisher","DOI":"10.1145\/2155620.2155650"},{"key":"e_1_2_1_52_1","doi-asserted-by":"publisher","DOI":"10.1109\/MM.2012.22"},{"key":"e_1_2_1_53_1","doi-asserted-by":"publisher","DOI":"10.5555\/2007336.2007411"},{"key":"e_1_2_1_54_1","volume-title":"Proceedings of the Uptime Institute Symposium.","author":"Company McKinsey","year":"2008","unstructured":"McKinsey & Company. 2008. Revolutionizing data center efficiency. In Proceedings of the Uptime Institute Symposium."},{"key":"e_1_2_1_55_1","doi-asserted-by":"publisher","DOI":"10.1145\/1508244.1508269"},{"key":"e_1_2_1_56_1","doi-asserted-by":"publisher","DOI":"10.1145\/2000064.2000103"},{"key":"e_1_2_1_57_1","unstructured":"Paul Menage. 2007. CGROUPS. Retrieved from https:\/\/www.kernel.org\/doc\/Documentation\/cgroup-v1\/ cgroups.txt."},{"key":"e_1_2_1_58_1","doi-asserted-by":"publisher","DOI":"10.1145\/2155620.2155664"},{"key":"e_1_2_1_59_1","doi-asserted-by":"publisher","DOI":"10.1145\/1555754.1555798"},{"key":"e_1_2_1_60_1","doi-asserted-by":"publisher","DOI":"10.1145\/1755913.1755938"},{"key":"e_1_2_1_61_1","doi-asserted-by":"publisher","DOI":"10.1109\/MICRO.2006.24"},{"key":"e_1_2_1_62_1","doi-asserted-by":"publisher","DOI":"10.5555\/2482626.2482663"},{"key":"e_1_2_1_63_1","doi-asserted-by":"publisher","DOI":"10.5555\/2535461.2535489"},{"key":"e_1_2_1_64_1","doi-asserted-by":"publisher","DOI":"10.1109\/WPMC.2002.1088344"},{"key":"e_1_2_1_65_1","doi-asserted-by":"publisher","DOI":"10.1109\/MASCOTS.2012.21"},{"key":"e_1_2_1_66_1","doi-asserted-by":"publisher","DOI":"10.5555\/2665671.2665678"},{"key":"e_1_2_1_67_1","doi-asserted-by":"publisher","DOI":"10.1109\/MICRO.2006.49"},{"key":"e_1_2_1_68_1","doi-asserted-by":"publisher","DOI":"10.1145\/339647.339685"},{"key":"e_1_2_1_69_1","doi-asserted-by":"publisher","DOI":"10.1145\/2391229.2391236"},{"key":"e_1_2_1_70_1","unstructured":"Chuck Rosenberg. 2013. Improving Photo Search: A Step Across the Semantic Gap. Retrieved from http:\/\/googleresearch.blogspot.com\/2013\/06\/improving-photo-search-step-across.html."},{"key":"e_1_2_1_71_1","doi-asserted-by":"publisher","DOI":"10.1145\/2024723.2000073"},{"key":"e_1_2_1_72_1","doi-asserted-by":"publisher","DOI":"10.1109\/TC.2010.63"},{"key":"e_1_2_1_73_1","doi-asserted-by":"publisher","DOI":"10.1145\/1993744.1993747"},{"key":"e_1_2_1_74_1","doi-asserted-by":"publisher","DOI":"10.1145\/1669112.1669177"},{"key":"e_1_2_1_75_1","volume-title":"Proceedings of the 2014 Non-volatile Memories Workshop (NVMW).","author":"Tanaka Shingo","year":"2014","unstructured":"Shingo Tanaka and Christos Kozyrakis. 2014. High performance hardware-accelerated flash key-value store. In Proceedings of the 2014 Non-volatile Memories Workshop (NVMW)."},{"key":"e_1_2_1_76_1","doi-asserted-by":"publisher","DOI":"10.1145\/2000064.2000099"},{"key":"e_1_2_1_77_1","doi-asserted-by":"publisher","DOI":"10.1145\/2517349.2522723"},{"key":"e_1_2_1_78_1","doi-asserted-by":"publisher","DOI":"10.1109\/HPCA.2010.5463056"},{"key":"e_1_2_1_79_1","doi-asserted-by":"publisher","DOI":"10.1145\/2150976.2151021"},{"key":"e_1_2_1_80_1","doi-asserted-by":"publisher","DOI":"10.1145\/291069.291044"},{"key":"e_1_2_1_81_1","doi-asserted-by":"publisher","DOI":"10.1145\/2018436.2018443"},{"key":"e_1_2_1_82_1","volume-title":"Proceedings of the 7th Workshop on Duplicating, Deconstructing, and Debunking","volume":"15","author":"Wu Carole-Jean","year":"2008","unstructured":"Carole-Jean Wu and Margaret Martonosi. 2008. A comparison of capacity management schemes for shared CMP caches. In Proceedings of the 7th Workshop on Duplicating, Deconstructing, and Debunking, Vol. 15. Citeseer."},{"key":"e_1_2_1_83_1","doi-asserted-by":"publisher","DOI":"10.1145\/1555754.1555778"},{"key":"e_1_2_1_84_1","doi-asserted-by":"publisher","DOI":"10.1145\/2485922.2485974"},{"key":"e_1_2_1_85_1","doi-asserted-by":"publisher","DOI":"10.1109\/ISPASS.2014.6844459"},{"key":"e_1_2_1_86_1","doi-asserted-by":"publisher","DOI":"10.1145\/2465351.2465388"},{"key":"e_1_2_1_87_1","doi-asserted-by":"publisher","DOI":"10.1109\/MICRO.2014.53"}],"container-title":["ACM Transactions on Computer Systems"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2882783","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/2882783","content-type":"application\/pdf","content-version":"vor","intended-application":"syndication"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/2882783","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,11,18]],"date-time":"2025-11-18T09:17:48Z","timestamp":1763457468000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2882783"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2016,5,5]]},"references-count":87,"journal-issue":{"issue":"2","published-print":{"date-parts":[[2016,5,5]]}},"alternative-id":["10.1145\/2882783"],"URL":"https:\/\/doi.org\/10.1145\/2882783","relation":{},"ISSN":["0734-2071","1557-7333"],"issn-type":[{"type":"print","value":"0734-2071"},{"type":"electronic","value":"1557-7333"}],"subject":[],"published":{"date-parts":[[2016,5,5]]},"assertion":[{"value":"2015-10-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2016-01-01","order":2,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2016-05-05","order":3,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}