论文标题
FreeBSD中的分解通信11:绩效分析
Interprocess Communication in FreeBSD 11: Performance Analysis
论文作者
论文摘要
IPC IPC的交流是现代操作系统中最基本的功能之一,在当代应用程序的结构中起着至关重要的作用。该报告对两种最常见的IPC机制背后的现实世界绩效注意事项进行了调查。管道和插座。一个简单的基准测试为每个基准提供了有效的带宽感,并提出了使用DTRACE,硬件性能计数器和操作系统的源代码的分析。我们注意到,在所有配置中,管道平均超过了63%,进一步说,用户空间传输缓冲区的大小对性能产生了深远的影响 - 较大的缓冲区有益于一点点(〜32-64 KIB)(〜32-64 KIB),之后性能由于毁灭性的cache排气而导致的性能崩溃了。还提出了对探针效应的深入审查,证明了这些实验得出的结论的有效性。
Interprocess communication, IPC, is one of the most fundamental functions of a modern operating system, playing an essential role in the fabric of contemporary applications. This report conducts an investigation in FreeBSD of the real world performance considerations behind two of the most common IPC mechanisms; pipes and sockets. A simple benchmark provides a fair sense of effective bandwidth for each, and analysis using DTrace, hardware performance counters and the operating system's source code is presented. We note that pipes outperform sockets by 63% on average across all configurations, and further that the size of userspace transmission buffers has a profound effect on performance - larger buffers are beneficial up to a point (~32-64 KiB) after which performance collapses as a result of devastating cache exhaustion. A deep scrutiny of the probe effects at play is also presented, justifying the validity of conclusions drawn from these experiments.