Improving server efficiency through exception-less system calls

108
Опубликовано 17 августа 2016, 1:48
Server applications, such as databases and web servers, are notorious for executing poorly on modern processors, specially when compared to scientific applications. Most studies attribute poor performance to lack of locality of execution, resulting in inefficient use of performance critical processor structures (e.g., instruction and data caches, TLBs and branch predictors). In this talk, I examine how the current synchronous system call interface, which has been adopted in most operating systems for 30+ years, contributes to the inefficient use of processor resources. To improve execution of system intensive applications, I propose 'exception-less system call', a new mechanism to request operating system services that decouples application and kernel execution. Exception-less system calls can be used to efficiently distribute computation on multicore systems and reduce pollution effects on processor structures. Our implementation of exception-less system calls, in conjunction with a novel threading library, can double the performance of certain server workloads. Our measurements show that the performance gains stem primarily from improved use of processor structures, leading to more efficient execution.
автотехномузыкадетское