{"id":1012251,"date":"2024-03-05T19:05:17","date_gmt":"2024-03-06T03:05:17","guid":{"rendered":"https:\/\/www.microsoft.com\/en-us\/research\/?post_type=msr-research-item&p=1012251"},"modified":"2024-03-05T19:05:17","modified_gmt":"2024-03-06T03:05:17","slug":"making-kernel-bypass-practical-for-the-cloud-with-junction","status":"publish","type":"msr-research-item","link":"https:\/\/www.microsoft.com\/en-us\/research\/publication\/making-kernel-bypass-practical-for-the-cloud-with-junction\/","title":{"rendered":"Making Kernel Bypass Practical for the Cloud with Junction"},"content":{"rendered":"
Kernel bypass systems have demonstrated order of <\/span>magnitude improvements in throughput and tail latency for <\/span>network-intensive applications relative to traditional operating <\/span>systems (OSes). To achieve such excellent performance, how<\/span>ever, they rely on dedicated resources (<\/span>e.g.,<\/span> spinning cores, <\/span>pinned memory) and require application rewriting. This is <\/span>unattractive to cloud operators because they aim to densely <\/span>pack applications, and rewriting cloud software requires a <\/span>massive investment of valuable developer time. For both rea<\/span>sons, kernel bypass, as it exists, is impractical for the cloud.<\/span><\/p>\n In this paper, we show these compromises are not neces<\/span>sary to unlock the full benefits of kernel bypass. We present <\/span>Junction, the first kernel bypass system that can pack thou<\/span>sands of instances on a machine while providing compatibility <\/span>with unmodified Linux applications. Junction achieves high <\/span>density through several advanced NIC features that reduce <\/span>pinned memory and the overhead of monitoring large numbers <\/span>of queues. It maintains compatibility with minimal overhead <\/span>through optimizations that exploit a shared address space with <\/span>the application. Junction scales to 19\u201362<\/span>\u00d7<\/span> more instances <\/span>than existing kernel bypass systems and can achieve similar or <\/span>better performance without code changes. Furthermore, Junc<\/span>tion delivers significant performance benefits to applications <\/span>previously unsupported by kernel bypass, including those that <\/span>depend on runtime systems like Go, Java, Node, and Python. <\/span>In a comparison to native Linux, Junction increases through<\/span>put by 1.6\u20137.0<\/span>\u00d7<\/span> while using 1.2\u20133.8<\/span>\u00d7<\/span> less cores across seven <\/span>applications.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":" Kernel bypass systems have demonstrated order of magnitude improvements in throughput and tail latency for network-intensive applications relative to traditional operating systems (OSes). To achieve such excellent performance, however, they rely on dedicated resources (e.g., spinning cores, pinned memory) and require application rewriting. This is unattractive to cloud operators because they aim to densely pack […]<\/p>\n","protected":false},"featured_media":0,"template":"","meta":{"msr-url-field":"","msr-podcast-episode":"","msrModifiedDate":"","msrModifiedDateEnabled":false,"ep_exclude_from_search":false,"_classifai_error":"","footnotes":""},"msr-content-type":[3],"msr-research-highlight":[],"research-area":[13547],"msr-publication-type":[193716],"msr-product-type":[],"msr-focus-area":[],"msr-platform":[],"msr-download-source":[],"msr-locale":[268875],"msr-post-option":[],"msr-field-of-study":[246691],"msr-conference":[263941],"msr-journal":[],"msr-impact-theme":[],"msr-pillar":[],"class_list":["post-1012251","msr-research-item","type-msr-research-item","status-publish","hentry","msr-research-area-systems-and-networking","msr-locale-en_us","msr-field-of-study-computer-science"],"msr_publishername":"","msr_edition":"","msr_affiliation":"","msr_published_date":"2024-4","msr_host":"","msr_duration":"","msr_version":"","msr_speaker":"","msr_other_contributors":"","msr_booktitle":"","msr_pages_string":"","msr_chapter":"","msr_isbn":"","msr_journal":"","msr_volume":"","msr_number":"","msr_editors":"","msr_series":"","msr_issue":"","msr_organization":"USENIX","msr_how_published":"","msr_notes":"","msr_highlight_text":"","msr_release_tracker_id":"","msr_original_fields_of_study":"","msr_download_urls":"","msr_external_url":"","msr_secondary_video_url":"","msr_longbiography":"","msr_microsoftintellectualproperty":1,"msr_main_download":"","msr_publicationurl":"","msr_doi":"","msr_publication_uploader":[{"type":"url","viewUrl":"false","id":"false","title":"https:\/\/www.usenix.org\/conference\/nsdi24\/presentation\/fried","label_id":"243109","label":0}],"msr_related_uploader":"","msr_attachments":[],"msr-author-ordering":[{"type":"text","value":"Joshua Fried","user_id":0,"rest_url":false},{"type":"user_nicename","value":"Gohar Irfan Chaudhry","user_id":38697,"rest_url":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/microsoft-research\/v1\/researchers?person=Gohar Irfan Chaudhry"},{"type":"user_nicename","value":"Enrique Saurez","user_id":41820,"rest_url":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/microsoft-research\/v1\/researchers?person=Enrique Saurez"},{"type":"user_nicename","value":"Esha Choukse","user_id":40417,"rest_url":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/microsoft-research\/v1\/researchers?person=Esha Choukse"},{"type":"user_nicename","value":"\u00cd\u00f1igo Goiri","user_id":32102,"rest_url":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/microsoft-research\/v1\/researchers?person=\u00cd\u00f1igo Goiri"},{"type":"user_nicename","value":"Sameh Elnikety","user_id":33503,"rest_url":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/microsoft-research\/v1\/researchers?person=Sameh Elnikety"},{"type":"user_nicename","value":"Rodrigo Fonseca","user_id":40429,"rest_url":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/microsoft-research\/v1\/researchers?person=Rodrigo Fonseca"},{"type":"text","value":"Adam Belay","user_id":0,"rest_url":false}],"msr_impact_theme":[],"msr_research_lab":[],"msr_event":[],"msr_group":[282170],"msr_project":[658236],"publication":[],"video":[],"download":[],"msr_publication_type":"inproceedings","related_content":{"projects":[{"ID":658236,"post_title":"Serverless Infrastructure","post_name":"serverless-infrastructure","post_type":"msr-project","post_date":"2020-05-12 09:02:55","post_modified":"2024-10-16 10:26:13","post_status":"publish","permalink":"https:\/\/www.microsoft.com\/en-us\/research\/project\/serverless-infrastructure\/","post_excerpt":"Function as a Service (FaaS) is a software paradigm that is becoming increasingly popular.\u00a0 Multiple cloud providers offer FaaS as the interface to usage-driven, stateless (serverless) backend services.\u00a0 FaaS offers an intuitive, event-based interface for developing cloud-based applications.\u00a0 In contrast to the traditional cloud interface, in FaaS, users do not explicitly provision or configure virtual machines (VMs) or containers.\u00a0 FaaS users do not pay for resources they do not use either.\u00a0 Instead, users simply upload…","_links":{"self":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-project\/658236"}]}}]},"_links":{"self":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-research-item\/1012251"}],"collection":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-research-item"}],"about":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/types\/msr-research-item"}],"version-history":[{"count":1,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-research-item\/1012251\/revisions"}],"predecessor-version":[{"id":1012257,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-research-item\/1012251\/revisions\/1012257"}],"wp:attachment":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/media?parent=1012251"}],"wp:term":[{"taxonomy":"msr-content-type","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-content-type?post=1012251"},{"taxonomy":"msr-research-highlight","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-research-highlight?post=1012251"},{"taxonomy":"msr-research-area","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/research-area?post=1012251"},{"taxonomy":"msr-publication-type","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-publication-type?post=1012251"},{"taxonomy":"msr-product-type","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-product-type?post=1012251"},{"taxonomy":"msr-focus-area","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-focus-area?post=1012251"},{"taxonomy":"msr-platform","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-platform?post=1012251"},{"taxonomy":"msr-download-source","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-download-source?post=1012251"},{"taxonomy":"msr-locale","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-locale?post=1012251"},{"taxonomy":"msr-post-option","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-post-option?post=1012251"},{"taxonomy":"msr-field-of-study","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-field-of-study?post=1012251"},{"taxonomy":"msr-conference","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-conference?post=1012251"},{"taxonomy":"msr-journal","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-journal?post=1012251"},{"taxonomy":"msr-impact-theme","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-impact-theme?post=1012251"},{"taxonomy":"msr-pillar","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-pillar?post=1012251"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}