Ingenieros de Mistral AI descubren la causa real de una fuga de memoria en vLLM usando BPFtrace
Mistral
Los ingenieros de Mistral AI investigaron una fuga de memoria en vLLM durante el servicio disagregado con Mistral Medium 3.1. Después de usar herramientas de Python, Heaptrack y BPFtrace, descubrieron que la fuga era causada por llamadas directas a mmap a través del envoltorio de syscall de glibc, no por asignaciones de heap.
El equipo de Mistral AI investigó una posible fuga de memoria en vLLM durante las pruebas de preproducción de servicio desagregado con su modelo frontera Mistral Medium 3.1. La fuga se manifestaba como un aumento constante de 400 MB por minuto en la memoria del sistema bajo condiciones específicas: con vLLM, Mistral Medium 3.1 y la compilación de grafos habilitada, solo en el lado de decodificación de la configuración desagregada Prefill/Decode usando NIXL. Las herramientas iniciales de Python como Memray y Guppy 3 no mostraban fuga, y Heaptrack solo revelaba una discrepancia en el RSS máximo. Al usar pmap para monitorear /proc/<pid>/maps, observaron asignaciones de memoria anónima crecientes con direcciones cambiantes, características de mremap o ciclos repetidos de mmap/munmap. Para identificar la causa exacta, usaron BPFtrace para rastrear llamadas al sistema, revelando que las asignaciones se realizaban mediante llamadas directas a mmap a través del envoltorio de syscall de glibc (syscall+29). Esto mostró que la fuga estaba fuera de la gestión del montón, requiriendo rastreo de bajo nivel para identificarla.
Fuente: Mistral AI —
original
