Optimización de eBPF con caché de inodos reduce costes CPU un 90%

Fuentes: eBPF Memoization Cuts Kernel CPU Cost by 90% via Inode Caching

Un equipo de desarrolladores ha implementado una técnica de memoización en un agente de seguridad basado en eBPF que reduce el coste de CPU del kernel en aproximadamente el 90%. La mejora se logra mediante la caché de políticas de acceso basadas en inodos, eliminando la necesidad de recorrer recursivamente el árbol de directorios para cada apertura de archivo. Antes de esta optimización, cada acceso a un archivo requería una búsqueda lineal a través de los nodos de directorio (dentries), lo que resultaba ineficiente en entornos con múltiples accesos secuenciales, como las bases de datos. La solución utiliza un mapa LRU hash en el kernel que almacena la política de acceso asociada a cada inodo, identificada por el ID del espacio de monturas, el ID del montaje y el número de inodo. Para garantizar la precisión, el sistema descarta la caché si el contador de enlaces (i_nlink) del inodo es mayor que uno, evitando errores en enlaces duros. Las pruebas de rendimiento muestran que, tras la primera búsqueda, la carga de CPU por travesía de rutas cae de 28.000 millones a 3.030 millones de ciclos por apertura de archivo. Esta optimización es interna y no requiere cambios en las políticas de usuario, mejorando significativamente la velocidad de la seguridad sin alterar la lógica de acceso.