Engenheiros da Mistral AI descobrem causa real de vazamento de memória no vLLM usando BPFtrace
Mistral
Engenheiros da Mistral AI investigaram um vazamento de memória no vLLM durante o serviço desagregado com Mistral Medium 3.1. Após usar ferramentas Python, Heaptrack e BPFtrace, descobriram que o vazamento era causado por chamadas mmap diretas via wrapper de syscall do glibc, e não por alocações de heap.
A equipe da Mistral AI investigou um possível vazamento de memória no vLLM durante testes de pré-produção de serving desagregado com seu modelo de fronteira Mistral Medium 3.1. O vazamento se manifestava como um aumento constante de 400 MB por minuto na memória do sistema sob condições específicas: com vLLM, Mistral Medium 3.1 e compilação de grafo ativada, apenas no lado de decodificação da configuração desagregada Prefill/Decode usando NIXL. Ferramentas Python iniciais como Memray e Guppy 3 não mostraram vazamento, e o Heaptrack revelou apenas discrepância no RSS de pico. Usando pmap para monitorar /proc/<pid>/maps, observaram mapeamentos de memória anônimos crescentes com endereços variáveis, característicos de mremap ou ciclos repetidos de mmap/munmap. Para identificar a causa exata, usaram BPFtrace para rastrear chamadas de sistema, revelando que as alocações eram feitas via chamadas mmap diretas através do wrapper de syscall da glibc (syscall+29). Isso mostrou que o vazamento estava fora do gerenciamento de heap, exigindo rastreamento de baixo nível para ser identificado.
Fonte: Mistral AI —
original
