eBPF: monitorización de alto rendimiento en Linux
Actualizado: 2026-05-03
eBPF (Extended Berkeley Packet Filter) ha cambiado la forma en que desarrolladores y administradores de sistemas monitorizan, analizan y optimizan el rendimiento en Linux. Permite ejecutar programas personalizados directamente en el kernel sin modificar su código fuente ni cargar módulos, combinando alto rendimiento con seguridad verificada.
Puntos clave
- eBPF extiende el filtro BPF clásico para ejecutar programas complejos y verificados en el kernel de Linux.
- Opera mediante una máquina virtual en el kernel; el verificador de seguridad garantiza que el programa no dañe el sistema.
- Permite monitorizar llamadas al sistema, eventos de red, operaciones de hardware y latencias de E/S.
- Las herramientas más relevantes son BCC, bpftrace, Cilium, Falco y Katran.
- El coste de CPU es significativamente menor que el de las soluciones de monitorización tradicionales basadas en sondas externas.
Qué es eBPF y de dónde viene
eBPF tiene su origen en BPF (Berkeley Packet Filter), diseñado en 1992 para filtrar paquetes de red en sistemas Unix. La versión extendida amplía radicalmente esa base:
- Permite ejecutar programas mucho más complejos y versátiles en el kernel.
- Admite múltiples tipos de eventos: llamadas al sistema, eventos de hardware, operaciones de bloque, paquetes de red.
- Incluye un verificador formal que rechaza cualquier programa que pueda causar un bucle infinito o acceder a memoria no autorizada.
El resultado es una tecnología que otorga a los operadores visibilidad en tiempo real de lo que ocurre dentro del kernel sin el riesgo de estabilidad que implicaría modificar el kernel directamente.

Cómo funciona
El flujo de ejecución de un programa eBPF sigue cinco pasos:
- El desarrollador escribe el programa en C (o en Rust con algunas bibliotecas) usando la API de eBPF.
- El compilador (LLVM/clang) lo transforma en bytecode eBPF.
- La herramienta de carga (bpftool, bpftrace u otras) envía el bytecode al kernel.
- El verificador del kernel comprueba que el programa es seguro (sin bucles infinitos, sin accesos fuera de límites, sin llamadas no autorizadas).
- El kernel compila el bytecode a código nativo (JIT) y lo ejecuta en la máquina virtual eBPF.
Los resultados se comunican al espacio de usuario a través de mapas eBPF — estructuras de datos compartidas de alta velocidad — para su análisis y visualización.
Beneficios clave
Cuatro propiedades hacen de eBPF una herramienta diferencial:
- Rendimiento: los programas corren directamente en el kernel con overhead mínimo. Analizar millones de eventos por segundo tiene un impacto en CPU mucho menor que las soluciones de monitorización basadas en agentes externos.
- Flexibilidad: cualquier operador puede escribir un programa personalizado para su caso de uso específico, sin esperar a que el kernel o las herramientas de monitorización lo soporten nativamente.
- Seguridad: el verificador formal impide que un programa eBPF dañe el sistema o comprometa la estabilidad. Los operadores pueden desplegar código sin tener acceso root completo.
- Portabilidad: los programas eBPF son independientes de la arquitectura del sistema y pueden ejecutarse en diferentes sistemas Linux con pocas o ninguna modificación.
Estas propiedades hacen de eBPF la base de herramientas de observabilidad modernas para contenedores y Kubernetes, en línea con lo que analiza Pixie para observabilidad en Kubernetes.
Herramientas y proyectos del ecosistema
El ecosistema de eBPF ha crecido rápidamente:
BCC (BPF Compiler Collection) es la colección de herramientas y bibliotecas de referencia para desarrollar y ejecutar programas eBPF. Proporciona APIs en C y Python, y un conjunto de herramientas predefinidas como execsnoop (trazado de ejecuciones de proceso), opensnoop (monitorización de apertura de ficheros) y biolatency (latencia de operaciones de bloque de disco).
bpftrace es una herramienta de rastreo de alto nivel con un lenguaje específico de dominio similar a awk. Especialmente útil para análisis ad-hoc y depuración en producción sin necesidad de compilar un programa completo.
Cilium usa eBPF para seguridad, observabilidad y balanceo de carga en redes de contenedores. Implementa políticas de seguridad a nivel de API y monitoriza tráfico en tiempo real — es el CNI de referencia para Kubernetes en entornos que priorizan la observabilidad de red.
Falco (CNCF) usa eBPF para detección de intrusiones y monitorización de comportamiento en tiempo real. Genera alertas cuando detecta actividad sospechosa: llamadas al sistema inesperadas, accesos a ficheros críticos o comportamientos de red anómalos.
Katran es la biblioteca de balanceo de carga de alto rendimiento de Meta, que usa eBPF para implementar algoritmos de distribución eficientes a nivel de kernel.

Casos de uso principales
eBPF se aplica en los siguientes contextos:
- Monitorización y análisis de rendimiento del sistema (latencia de syscalls, uso de CPU por proceso, I/O de disco).
- Análisis de tráfico de red y filtrado de paquetes a alta velocidad.
- Seguimiento de llamadas al sistema para detección de comportamiento malicioso.
- Implementación de políticas de seguridad y control de acceso granular.
- Balanceo de carga a nivel de kernel sin pasar por el espacio de usuario.
Esta capacidad se complementa con las alertas en Prometheus: mientras Prometheus captura métricas agregadas en el espacio de usuario, eBPF añade visibilidad de granularidad de kernel que ningún agente externo puede igualar.
Conclusión
eBPF representa un cambio de paradigma en la observabilidad de Linux: de sondas externas con alto overhead a programas verificados ejecutados directamente en el kernel. Para equipos que necesitan visibilidad de alta resolución sobre latencias, llamadas al sistema y tráfico de red, eBPF es la herramienta más potente del ecosistema Linux y la base sobre la que se construyen las soluciones de observabilidad cloud-native modernas.