Performance tradeoffs for static allocation of zero-copy buffers
Pål Halvorsen, E. Jorde, Karl-André Skevik, Vera Goebel, Thomas Plagemann · 2003
Internet services like the World-Wide Web and multimedia applications like news- and video-on-demand have become very popular over the last years. Due to the large number of users that retrieve multimedia data with high data rates concurrently, the data servers represent a severe bottleneck in this context. Traditional time and resource consuming operations like memory copy operations limit the number of streams that can concurrently be transmitted from the server. To avoid this bottleneck and make memory and CPU resources available for other tasks, i.e., more concurrent clients, we have implemented a specialized zero-copy data path from the storage system through the communication system out to the network. In order to perform better than existing related approaches, we remove the overhead of memory related operations by statically allocating the necessary buffers. In this paper we describe the design, implementation, and evaluation of the zero-copy data path. Our results show the potential for substantial performance improvement when moving data through the communication system without any copy operations and using statically allocated buffers.