
copia ciega (Colección del compilador BPF) es un poderoso conjunto de herramientas apropiadas y archivos de ejemplo para crear programas de manipulación y seguimiento del kernel ricos en recursos.
utiliza extensiones filtro de paso de banda (Filtro de paquetes Berkeley), originalmente llamado BPF electrónico Esta es una de las nuevas características. Linux 3.15.
De hecho, la mayoría de los componentes que utilizan copia ciega Requerir linux 4.1 o superior, sus características destacables incluyen:
- No se requieren módulos centrales de terceros ya que todas las herramientas funcionan según BPF integrado en el núcleo y BCC utiliza funciones agregadas en la serie Linux 4.x.
- Capacidad para observar la ejecución del software.
- Contiene múltiples herramientas de análisis de rendimiento, así como archivos de muestra y páginas de manual.
Lo mejor para usuarios avanzados de Linux, copia ciega Haz que escribir sea fácil filtro de paso de banda Programas que utilizan la detección del kernel Cy front-end Pitón y lua.
Además, admite una variedad de tareas como análisis de rendimiento, monitoreo, control del tráfico de red y más.
Cómo instalar BCC en un sistema Linux
Atención – Recuerde copia ciega Utilice nuevas funciones en la versión principal de Linux 4.1 o superior, y como requisito el kernel debe compilarse con los indicadores establecidos a continuación:
CONFIG_BPF=y CONFIG_BPF_SYSCALL=y # [optional, for tc filters] CONFIG_NET_CLS_BPF=m # [optional, for tc actions] CONFIG_NET_ACT_BPF=m CONFIG_BPF_JIT=y # [for Linux kernel versions 4.1 through 4.6] CONFIG_HAVE_BPF_JIT=y # [for Linux kernel versions 4.7 and later] CONFIG_HAVE_EBPF_JIT=y # [optional, for kprobes] CONFIG_BPF_EVENTS=y # Need kernel headers through /sys/kernel/kheaders.tar.xz CONFIG_IKHEADERS=y
Puede utilizar un único comando grep para comprobar todos los indicadores de configuración principales especificados y proporcionar todos los nombres de los indicadores como patrones.
grep -E 'CONFIG_BPF=y|CONFIG_BPF_SYSCALL=y|CONFIG_NET_CLS_BPF=m|CONFIG_NET_ACT_BPF=m|CONFIG_BPF_JIT=y|CONFIG_HAVE_BPF_JIT=y|CONFIG_HAVE_EBPF_JIT=y|CONFIG_BPF_EVENTS=y|CONFIG_IKHEADERS=y' /boot/config-$(uname -r)

Después de verificar las banderas del kernel, está listo para instalar copia ciega Herramientas en sistemas Linux.
Instalar herramientas BCC en Debian
puedes encontrar copia ciega así como herramientas en el repositorio principal habitual de Debian.Vienen del paquete de código fuente. BPFCC y fue nombrado herramienta bpfcc, python3-bpfcc, libbpfccy libbpfcc-dev.
echo deb sid main >> /etc/apt/sources.list sudo apt-get install -y bpfcc-tools libbpfcc libbpfcc-dev linux-headers-$(uname -r)
Instalar herramientas BCC en Ubuntu
Puedes encontrar diferentes versiones de copia ciega en regular Universo Ubuntu repositorio.
sudo apt-get install bpfcc-tools linux-headers-$(uname -r)
Instalar herramientas BCC en Fedora
como sombrero 40, copia ciega Los archivos binarios se pueden encontrar en el repositorio estándar.
sudo dnf install bcc
Instalar herramientas BCC en RHEL
copia ciega Ya incluido en el repositorio oficial de yum como se muestra a continuación. herramienta de copia oculta.
sudo yum install bcc-tools
Instalar herramientas BCC en Arch Linux
copia ciega está disponible en el repositorio estándar de Arch y se puede utilizar pacman Orden.
pacman -S bcc bcc-tools python-bcc
Instalar herramientas BCC en openSUSE
para openSUSE Salto 42.2 (y más allá) y planta rodadora, copia ciega Ya incluido en el repositorio oficial.
sudo zypper ref sudo zypper in bcc-tools bcc-examples
Cómo utilizar la herramienta BCC en el sistema Linux
todo copia ciega La herramienta está instalada en /usr/share/bcc/tools Tabla de contenido. Sin embargo, también puedes ejecutarlos desde: Cco Github bajo repositorio /tools Ellos usan .py expandir.
ls /usr/share/bcc/tools

Presentaremos algunos ejemplos: monitoreo del rendimiento general del sistema Linux y de la red.
Seguimiento de llamadas al sistema open() en Linux
Comencemos rastreando todo open() Uso de llamadas al sistema Activar el monitoreo herramienta. Esto nos permite comprender cómo funcionan varias aplicaciones identificando archivos de datos, archivos de configuración, etc.:
cd /usr/share/bcc/tools sudo ./opensnoop

Análisis de la latencia de E/S del disco en Linux
Este ejemplo muestra la distribución de la suma de las latencias de E/S del disco utilizando la herramienta de latencia biológica.Después de ejecutar el comando, espere unos minutos y luego haga clic Ctrl-C Termínelo y vea el resultado.
sudo ./biolatency

Seguimiento de nuevos procesos en Linux
En esta sección, usaremos el siguiente comando para rastrear el nuevo proceso en ejecución Ejecutar monitoreo herramienta.Cada vez que se bifurca un proceso fork() y exec() llamada al sistema, que se muestra en el resultado. Sin embargo, no se detectan todos los procesos.
sudo ./execsnoop

Seguimiento de operaciones lentas del sistema de archivos Ext4
usar ext4 lento para realizar un seguimiento externo 4 Las operaciones comunes del sistema de archivos son más lentas que 10 milisegundosnos ayuda a identificar E/S de disco lentas independientes a través del sistema de archivos.
Solo generará aquellas operaciones que excedan el umbral:
sudo ./ext4slower

Utilice biosnoop para explorar la actividad de E/S del disco
A continuación, profundicemos en la impresión de una línea por segundo para cada E/S de disco con detalles como ID de proceso, sectores, bytes y latencia, usando Criatura husmeando herramienta:
sudo ./biosnoop

Analizar el rendimiento de la caché del sistema
A partir de entonces seguimos utilizando estado de caché Una herramienta que muestra una fila de estadísticas resumidas del caché del sistema cada segundo. Esto puede llevar a acciones de ajuste del sistema al señalar tasas bajas de aciertos de caché y altas tasas de errores:
sudo ./cachestat

Monitorear conexiones TCP en Linux
Monitorear la cantidad de conexiones TCP por segundo conexión TCP herramienta. Su salida incluye la dirección de origen, la dirección de destino y el número de puerto. Esta herramienta es útil para rastrear conexiones TCP inesperadas, ayudándonos así a identificar ineficiencias o atacantes en las configuraciones de las aplicaciones.
sudo ./tcpconnect

Todas las herramientas anteriores también se pueden utilizar con varias opciones. Para habilitar la página de descripción de una herramienta determinada, utilice -h opciones, por ejemplo:
sudo ./tcpconnect -h

Seguimiento de llamadas fallidas al sistema exec()
Para rastrear llamadas fallidas al sistema exec(), utilice -x Las opciones para opensnoop son las siguientes:
sudo ./opensnoop -x

Seguimiento de funciones de proceso específicas
El último ejemplo a continuación demuestra cómo realizar una operación de seguimiento personalizada.Lo estamos utilizando para rastrear procesos específicos. PID.
Primero, determine el ID del proceso:
pidof firefox
Más tarde, ejecute el personalizado rastro Orden.El siguiente comando -p Especifique el ID del proceso, do_sys_open() Es una función del kernel rastreada dinámicamente que incluye su segundo parámetro como una cadena.
sudo ./trace -p 4095 'do_sys_open "%s", arg2'
generalizar
copia ciega Es un conjunto de herramientas potente y fácil de usar adecuado para diversas tareas de administración del sistema, como seguimiento del rendimiento del sistema, seguimiento de E/S de dispositivos de bloque, funciones TCP, operaciones del sistema de archivos, llamadas al sistema, sondas Node.js, etc. Es importante destacar que viene con varios archivos de ejemplo y páginas de manual para guiar su herramienta, haciéndola fácil de usar y confiable.
Por último, pero no menos importante, puede comunicarse con nosotros a través de la sección de comentarios a continuación para compartir sus opiniones sobre este tema, hacer preguntas, dar sugerencias útiles o cualquier comentario constructivo.









