مهندسو Mistral AI يكشفون السبب الحقيقي لتسرب الذاكرة في vLLM باستخدام BPFtrace

MistralMistral
قام مهندسو Mistral AI بالتحقيق في تسرب الذاكرة في vLLM أثناء الخدمة المفككة مع Mistral Medium 3.1. بعد استخدام أدوات Python وHeaptrack وBPFtrace، وجدوا أن التسرب ناتج عن استدعاءات mmap المباشرة عبر غلاف استدعاء النظام الخاص بـ glibc، وليس تخصيصات الكومة.
قام فريق Mistral AI بالتحقيق في تسرب ذاكرة مشتبه به في vLLM أثناء اختبار ما قبل الإنتاج للخدمة المنفصلة باستخدام نموذجهم الرائد Mistral Medium 3.1. ظهر التسرب كزيادة ثابتة في ذاكرة النظام بمقدار 400 ميجابايت في الدقيقة في ظل ظروف محددة: مع vLLM و Mistral Medium 3.1 وتمكين تجميع الرسم البياني، فقط على جانب فك الترميز في إعداد Prefill/Decode المنفصل باستخدام NIXL. لم تظهر أدلة بايثون الأولية مثل Memray و Guppy 3 أي تسرب، وأظهر Heaptrack فقط تباينًا في القمة القصوى لاستخدام الذاكرة (peak RSS). باستخدام pmap لمراقبة /proc/<pid>/maps، لاحظوا تعيينات ذاكرة مجهولة متنامية بعناوين متغيرة، وهي سمة من سمات mremap أو دورات mmap/munmap المتكررة. لتحديد السبب الدقيق، استخدموا BPFtrace لتتبع استدعاءات النظام، مما كشف أن التخصيصات تمت عبر استدعاءات mmap المباشرة من خلال أداة استدعاء النظام (syscall) الخاصة بمكتبة glibc (syscall+29). أظهر هذا أن التسرب كان خارج إدارة الكومة، مما تطلب تتبعًا منخفض المستوى لتحديده.
المصدر: Mistral AI — الأصلي
منشوراتنا السابقة حول هذا الموضوع ↓
أخبار جديدة