🧠 Как ΠΌΡ‹ нашли ΡƒΡ‚Π΅Ρ‡ΠΊΡƒ памяти Π² vLLM

Команда Mistral AI ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ»Π° ΡƒΡ‚Π΅Ρ‡ΠΊΡƒ памяти Π² vLLM ΠΏΡ€ΠΈ использовании disaggregated serving.

Π£Ρ‚Π΅Ρ‡ΠΊΠ° Π² 400 ΠœΠ‘/ΠΌΠΈΠ½ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π»Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² слоТной ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ: модСль Mistral Medium 3.1, Prefill/Decode separation с NIXL ΠΈ Π²ΠΊΠ»ΡŽΡ‡Ρ‘Π½Π½ΠΎΠΉ компиляциСй Π³Ρ€Π°Ρ„Π°. Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹Π΅ ΠΏΡ€ΠΎΡ„Π°ΠΉΠ»Π΅Ρ€Ρ‹ (Memray, Guppy3, Heaptrack) Π½Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ β€” ΡƒΡ‚Π΅Ρ‡ΠΊΠ° Π±Ρ‹Π»Π° Π²Π½Π΅ ΠΊΡƒΡ‡ΠΈ. Анализ Ρ‡Π΅Ρ€Π΅Π· pmap выявил рост Π°Π½ΠΎΠ½ΠΈΠΌΠ½Ρ‹Ρ… ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ памяти. Π”Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠ΅Π΅ исслСдованиС с BPFtrace ΠΈ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ GDB ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΎ, Ρ‡Ρ‚ΠΎ систСмныС Π²Ρ‹Π·ΠΎΠ²Ρ‹ mmap ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π½Π΅ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ, Π° Ρ‡Π΅Ρ€Π΅Π· Ρ…ΡƒΠΊΠΈ UCX β€” Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ для Π²Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΈ. UCX ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ всС mmap Ρ‡Π΅Ρ€Π΅Π· GOT ΠΈ добавляСт ΠΏΠ°ΠΌΡΡ‚ΡŒ Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ рСгистрации (RCache), которая Π½Π΅ ΠΎΡ‡ΠΈΡ‰Π°Π»Π°ΡΡŒ ΠΈΠ·-Π·Π° отсутствия ucp_worker_progress().

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Ρ€Π΅ΡˆΠ΅Π½Π°: ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Ρ…ΡƒΠΊΠΎΠ² Ρ‡Π΅Ρ€Π΅Π· UCX_MEM_MMAP_HOOK_MODE=none устранило ΡƒΡ‚Π΅Ρ‡ΠΊΡƒ. Π’Π°ΠΊΠΆΠ΅ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ UCX_RCACHE_MAX_UNRELEASED. Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡƒΠΆΠ΅ Π² vLLM.

#memory_leak #vllm #debugging #ucx #bpftrace #mmap

🧠 Как ΠΌΡ‹ нашли ΡƒΡ‚Π΅Ρ‡ΠΊΡƒ памяти Π² vLLM
Команда Mistral AI ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ»Π° ΡƒΡ‚Π΅Ρ‡ΠΊΡƒ памяти Π² vLLM ΠΏΡ€ΠΈ использовании disaggregated serving | Π‘Π΅Ρ‚ΠΊΠ° β€” ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ ΡΠ΅Ρ‚ΡŒ ΠΎΡ‚ hh.ru