TCP/IP Cache Characterization in Commercial Server Workloads
Li Zhao, Ramesh Illikkal, Srihari Makineni, Laxmi Narayan Bhuyan · 2004
Abstract – Internet server applications (such as web servers, ecommerce front-ends, etc) spend a significant portion of time processing network data. These applications use TCP/IP as the communication protocol which is known to be very memory intensive. In this paper, we present a simulation-based characterization of the cache/memory access behavior of TCP/IP processing in two popular commercial benchmarks-- SPECweb99 and TPC-W. Our Simple Scalar simulator is fed with network traces collected from commercial platforms running these benchmarks under various configurations. We identify the types of data (descriptors, headers, control blocks, etc) that the TCP/IP stack needs to access while processing packets and analyze the cache behavior, in terms of cache size and locality for these data. We show that the TCP/IP data falls into two categories; data with temporal locality such as hash nodes and TCBs and data with no locality (transient) such as descriptors and payload. Based on the cache characterization study, we propose the usage of a dedicated cache to store and manage TCP/IP data with and without locality. We study various approaches to organizing the network cache and their effects. We show that a small cache, in the order of 5 Kbytes is sufficient for near-optimal performance of TCP/IP processing with the additional advantage of minimizing the processor cache pollution.. We also touch upon alternative approaches to enable network-friendly cache hierarchies without the need for a dedicated cache structure I.