инструменты 1 мин

Как мы исправили тихого убийцу в нашем LLM-кластере на Mac Studio

Команда столкнулась с регулярными падениями распределённого LLM-кластера из пяти Mac Studio (96 ГБ памяти), связанных через Thunderbolt 5. Проблема оказалась многослойной: баг в mlx.launch не убивал удалённые процессы при сбое, orphan-процессы в состоянии Us+ накапливались сотнями и истощали пул RDMA protection domains, что приводило к RuntimeError при инициализации новых задач.

Практический разбор реальной production-проблемы в распределённом inference на Apple Silicon с MLX. Полезно инженерам, работающим с распределёнными LLM-системами, RDMA, или сталкивающимся с resource leaks в долгоживущих сервисах — показывает, как debugging многослойных проблем требует понимания взаимодействия разных уровней (Python, SSH, kernel, RDMA).

Это аннотация к авторской статье. Мы не публикуем и не пересказываем чужие тексты целиком — полная версия у автора.

О чём статья

  • Баг в mlx.launch: при падении главного процесса удалённые rank-процессы на peer-узлах не убивались из-за ошибки подстановки переменной (tmpfile = tmp.None)
  • Процессы в состоянии Us+ (uninterruptible sleep) невозможно убить даже через kill -9, они застревают в ожидании внутри RDMA-стека jaccl
  • Существующая логика очистки искала orphan-процессы по ppid=1, но пропускала основную массу — те, чей родитель sshd тоже завис в ожидании дочернего процесса
  • Каждый orphan-процесс удерживает RDMA protection domain навсегда, истощая конечный пул ресурсов, что делает кластер неработоспособным до полной перезагрузки
MLXdistributed-inferenceRDMAApple-Silicondebuggingresource-leaks
Павел Заславский Medium #llm
Читать оригинал

Инструменты из статьи

Udioбез VPN

Генерация музыки с вокалом, альтернатива Suno с другим характером звука.

Доступ из РФ →

Ещё по теме

Комментарии