Ứng dụngPhần cứng & Suy luận 🇷🇺 31.07.2026 11:01

Sự cố GPU trong Kubernetes: Xử lý lỗi thiết bị mà không phải chờ đợi vô hạn

MetaMeta NVIDIANVIDIA
Năm 2024, cụm 16.384 GPU H100 của Meta dùng để huấn luyện Llama 3 405B đã gặp 419 lần gián đoạn, trong đó 58,7% là do GPU. Kubernetes thường xử lý những lỗi này bằng cách chỉ đơn giản khởi động lại container trên cùng một thiết bị hỏng, dẫn đến trạng thái Pending kéo dài. Bài viết này giải thích cách các tính năng mới Dynamic Resource Allocation (DRA) trong Kubernetes 1.36 cuối cùng đã cung cấp giải pháp, với bản demo trực tiếp trên cụm được quản lý VK Cloud.
Bài viết nêu bật kinh nghiệm của Meta khi huấn luyện Llama 3 405B, trong đó cụm 16.384 GPU H100 đã ghi nhận 419 lần gián đoạn, 58,7% trong số đó liên quan đến GPU. Bài viết chỉ ra rằng Kubernetes theo truyền thống xử lý lỗi thiết bị giống như lỗi dịch vụ stateless (không lưu trạng thái), tức là thử khởi động lại trên cùng một GPU đã hỏng, dẫn đến vòng lặp crash loop (liên tục sập rồi khởi động lại). Để giải quyết vấn đề này, Kubernetes 1.36 giới thiệu một số cơ chế: DRA (Dynamic Resource Allocation - Cấp phát tài nguyên động) đã ổn định từ phiên bản 1.34, cung cấp mô hình dựa trên đối tượng thay cho bộ đếm đơn giản; danh sách ưu tiên (firstAvailable) cho các thiết bị dự phòng; trạng thái sức khỏe thiết bị trong pod status; device taints và tolerations (đánh dấu và khoan dung thiết bị); cùng với device binding conditions (điều kiện ràng buộc thiết bị), và nhiều cơ chế khác. Tác giả xây dựng một môi trường thử nghiệm trên VK Cloud Managed Kubernetes 1.36 với một node GPU và mô phỏng lỗi GPU bằng cách gỡ nóng (hot-remove) thiết bị PCIe. Kết quả cho thấy node báo cáo thiết bị này là unhealthy (không lành mạnh) và số lượng allocatable (có thể cấp phát) giảm xuống, nhưng pod vẫn tiếp tục khởi động lại trên GPU đã hỏng mà không có bất kỳ sự tái lập lịch (rescheduling) nào. Bài viết kết luận bằng việc giải thích tại sao Kubernetes không có cơ chế descheduling (tái sắp xếp lịch) tích hợp sẵn cho các pod ở trạng thái CrashLoopBackOff, và đề cập đến các giải pháp tự chế (DIY) như node health controller (bộ điều khiển sức khỏe node) có chức năng loại bỏ toàn bộ node - một biện pháp khá thô bạo và thiếu linh hoạt.
Nguồn: Habr — хаб ML — bản gốc
Bài viết liên quan trước đây ↓
Tin mới