Session

Assessing the impact of Linux networking on CPU consumption

Speakers

Davide Miola
Fulvio Risso
Federico Parola

Label

Nuts and Bolts

Session Type

Talk

Contents

Description

We all understand that software networking is expensive, but do you know just how much of your Linux servers’ CPU time is being spent moving packets around? We feel like this is an important question to answer, in a world where network interfaces keep getting faster at a rate higher than that of our processors, and considering the increasing amount of network services being implemented in software. Additionally, some SmartNIC vendors claim that the total CPU utilization due to networking tasks in a typical server can be as high as 30%, a number which seems to be backed up by the relative popularity of such hardware accelerators in hyperscalers’ data-center networks.

Unfortunately, no dedicated tool was available to isolate the network stack’s CPU load from unrelated kernel functionality… Until now! This talk presents design and architecture of Netto, a novel tool that uses eBPF probes to trace the Linux kernel’s network stack, enabling in depth observation and monitoring of its CPU utilization. It is also shown how Netto can estimate a breakdown of this monolithic cost into the composing network functions like bridging and forwarding while overcoming the expensive eBPF instrumentation overhead by collecting and analyzing CPU stack traces.