Kỹ sư Mistral AI phát hiện nguyên nhân thực sự của rò rỉ bộ nhớ trong vLLM bằng BPFtrace
Mistral
Các kỹ sư Mistral AI đã điều tra một lỗi rò rỉ bộ nhớ trong vLLM trong quá trình phân phối tách rời với Mistral Medium 3.1. Sau khi sử dụng các công cụ Python, Heaptrack và BPFtrace, họ phát hiện rằng lỗi rò rỉ là do các lệnh gọi mmap trực tiếp thông qua trình bao bọc syscall của glibc, chứ không phải là cấp phát heap.
Đội ngũ của Mistral AI đã điều tra một rò rỉ bộ nhớ nghi ngờ trong vLLM trong quá trình thử nghiệm tiền sản xuất dịch vụ phân tách với mô hình hàng đầu Mistral Medium 3.1. Rò rỉ biểu hiện dưới dạng tăng đều đặn 400 MB mỗi phút trong bộ nhớ hệ thống trong các điều kiện cụ thể: với vLLM, Mistral Medium 3.1 và biên dịch đồ thị được bật, chỉ ở phía giải mã của thiết lập phân tách Prefill/Decode sử dụng NIXL. Các công cụ Python ban đầu như Memray và Guppy 3 không phát hiện rò rỉ, và Heaptrack chỉ cho thấy sự chênh lệch RSS đỉnh. Bằng cách sử dụng pmap để giám sát /proc/<pid>/maps, họ quan sát thấy các ánh xạ bộ nhớ ẩn danh đang tăng lên với các địa chỉ thay đổi, đặc trưng của mremap hoặc các chu kỳ mmap/munmap lặp lại. Để xác định chính xác nguyên nhân, họ đã sử dụng BPFtrace để theo dõi các cuộc gọi hệ thống, tiết lộ rằng các cấp phát được thực hiện thông qua các cuộc gọi mmap trực tiếp thông qua trình bao bọc cuộc gọi hệ thống của glibc (syscall+29). Điều này cho thấy rò rỉ nằm ngoài quản lý heap, yêu cầu theo dõi cấp thấp để xác định.
Nguồn: Mistral AI —
bản gốc
