Активация за 5 минут

TB5 80 Gbps
многомашинная ферма сборки

$21.2 / день · выделенное железо
Арендовать сейчас
Кластеризация TB5 опционально Сеть внутри узла

Реальный тест кластера Mac mini в облаке: каков опыт параллельного Thunderbolt 5 на 80 Gbps?

Одного Mac mini M4 хватает для большинства сборок Xcode и on-device ML. Узкое место появляется, когда подключают вторую и третью машину: параллельные Archive, общий DerivedData, артефакты на десятки гигабайт через публичный канал 1 Gbps. Мы арендовали три физических Mac mini на узле SpinMac Сингапур, включили параллельное соединение Thunderbolt 5 и замерили всё — от обнаружения моста до iperf3 и реальных сборок — чтобы перевести 80 Gbps в понятный опыт.

Когда одной машины достаточно — и когда TB5 меняет картину

Кластеризация Thunderbolt 5 — не переключатель, ускоряющий xcodebuild на одной цели. Выделенный M4 с 16 GB единой памяти по-прежнему задаёт потолок полной одиночной сборки. TB5 решает план передачи данных между машинами: когда ЦП уже не узкое место, копирование DerivedData, .xcarchive или весов моделей по гигабитному WAN становится заметной «налоговой» статьёй.

Перед тестами три сценария повторялись снова и снова — именно здесь окупается TB5:

  • Ферма сборки: один репозиторий, несколько схем (внутренний Debug, Release в стор, Archive Extension) параллельно;
  • Синхронизация крупных артефактов: кэш и выходные файлы между воркерами, часто десятки ГБ за проход;
  • Распределённый инференс или рендер: шарды модели требуют межсоединения близкого к пропускной способности памяти, а не общего uplink 1 Gbps.

Три хоста только по публичному IPv4 упираются примерно в 125 МБ/с — 50 ГБ занимают шесть–семь минут и конкурируют с остальным трафиком. Смысл TB5: собрать несколько Mac mini в одном узле SpinMac физической связью 80 Gbps в логическую высокоскоростную LAN и сократить совместное ожидание с минут до секунд.

Стенд: три корпуса, одна магистраль TB5

Все замеры проводились на SpinMac Сингапур. Команды из Европы подключаются по SSH с приемлемой задержкой; важное ограничение: TB5 требует машин на одном узле — Сингапур и Токио не объединяются в один кластер.

Тестовая среда

Железо: 3 × Mac mini M4 · 10-ядерный CPU · 16 GB единой памяти · SSD NVMe 256 GB · выделенная публичная полоса 1 Gbps.
ОС: macOS 15 Sequoia, Xcode 16.4, iperf3 3.17 через Homebrew.
Межсоединение: опция кластеризации Thunderbolt 5 SpinMac (цепная топология на узле: A ↔ B ↔ C).
Контроль: те же три хоста по публичному IP + только SSH/rsync, TB5 отключён.
Проект: среднее SwiftUI-приложение (~120 000 строк, 3 расширения) + сжатый снимок DerivedData 42 ГБ для тестов синхронизации.

3
физических узла M4
80 Gbps
номинал TB5
1 Gbps
публичный канал на хост
42 ГБ
нагрузка для sync-теста

От заказа до активной связи: чеклист развёртывания

TB5 — опция для нескольких инстансов в одной группе заказа на одном узле. Покупать кабели и коммутатор не нужно — SpinMac прокладывает связь в стойке.

  1. 01
    Аренда нескольких хостов и включение TB5

    На странице заказа выберите узел «Сингапур», количество 3, период на выбор (мы взяли $57,3/неделю за хост). Отметьте «Кластеризация нескольких машин Thunderbolt 5» — TB5 +$4,1/неделю за машину. После оплаты три хоста готовы за 1–5 минут; в консоли отображается «кластер TB5».

  2. 02
    Проверка Thunderbolt Bridge в macOS

    После SSH в «Системные настройки → Сеть» должен быть мост Thunderbolt с link-local 169.254.x.x. ifconfig bridge0 — active. Моста нет на одном хосте: идёт провижининг — тикет в поддержку (мы ждали ~8 мин).

  3. 03
    Имена хостов и доверие SSH

    IP на стороне TB5 и алиасы (mac-a и т.д.) в /etc/hosts, SSH по ключу. iperf3 и rsync только по сегменту bridge — никогда по публичным IP.

  4. 04
    Дымовой тест

    С mac-a: ping -c 5 169.254.x.x (bridge-адрес mac-b) — ожидайте 0,3–0,8 мс. Короткий iperf3, затем боевые задачи.

Совет

Кластеризация TB5 применяется только к нескольким Mac mini на одном узле SpinMac. Уже один хост? Добавьте параллельное соединение из деталей заказа в консоли — новый заказ не нужен. Тарифы: таблица опций на странице цен.

Бенчмарк пропускной способности: насколько близко к 80 Gbps?

80 Gbps — номинал физического уровня. Реальный throughput зависит от оверхеда, softirq, настроек инструментов и топологии. iperf3 в одном потоке и в 8 параллельных, по пять прогонов — медианы ниже.

Маршрут Инструмент / параметры Медианный throughput Примечания
mac-a → mac-b (TB5) iperf3 · 8 потоков · 30 с 68,4 Gbps ~85 % номинала, первый прыжок в цепи
mac-a → mac-c (TB5 через B) iperf3 · 8 потоков 61,2 Gbps ещё один хоп, всё равно далеко выше гигабита
mac-a → mac-b (публичный IP) iperf3 · один поток 0,94 Gbps упёрлись в порт 1 Gbps
mac-a → mac-b (публичный · scp 42 ГБ) Реальная передача файла ~112 МБ/с 42 ГБ за ~6 мин 18 с
mac-a → mac-b (TB5 · rsync 42 ГБ) rsync -avz полная первая копия пик ~3,8 ГБ/с полная синхронизация за ~18 с

Проще говоря: снимок DerivedData 42 ГБ по scp через публичную сеть — больше шести минут; по rsync через TB5 первая полная копия укладывается в двадцать секунд, инкремент — в три секунды. В ферме сборки ожидание кэша переходит из режима «перерыв на кофе» в «налить стакан воды».

Важно: TB5 оптимизирует транспорт между узлами, а не длительность изолированной clean-сборки. Медленная цель? Сначала зависимости и модуляризация. Боль в параллельных машинах + крупном общем кэше? Выигрыш TB5 очевиден.

Реальные сценарии: сборки Xcode и распределение CI

Бенчмарки должны совпадать с вашим release-потоком. Два контролируемых сценария:

Эксперимент A: три параллельных Archive, один источник DerivedData

mac-a делает полную сборку и формирует DerivedData, пушит кэш на mac-b и mac-c через TB5; все три архивируют разные схемы (внутренний Debug, Release в стор, только Notification Service Extension).

Без TB5 (каждый хост пересобирает): ~47 мин суммарно по часам (14–16 мин полной сборки на каждом).
С TB5 (одна сборка + раздача кэша): первая сборка 15 мин 20 с, push кэша 22 с, параллельные Archive 8 мин 40 с, итого 24 мин 22 с — примерно 48 % экономии. Три release-цикла в день — десятки часов в неделю.

Эксперимент B: пул self-hosted runner GitHub Actions

Три self-hosted регистрации (macos-m4-a/b/c). Matrix разделяет unit- и UI-тесты; агрегация 6,2 ГБ .xcresult на mac-a: 4 мин 50 с по публичной сети, 41 с через TB5.

Установка runner, подпись и TestFlight: см. наше руководство CI/CD Xcode на облачном Mac — пайплайн на одном узле; эта статья дополняет слой межмашинного соединения.

Подводные камни в боевых условиях

SpinMac даёт физику и bridge-сеть — прикладную архитектуру строите вы.

Внимание

Не оставляйте rsync или NFS смотреть на публичные IP по ошибке. Мы оставили RSYNC_HOST на WAN-адресе — 42 ГБ за шесть минут, пока не заметили. Перед крупным переносом: route get 169.254.x.x.

  • Цепная топология: A–B–C даёт A→C медленнее, чем A→B. Источник кэша в центре (у нас mac-b) для чувствительных к полной синхронизации путей.
  • Диск всё ещё ограничивает: три дерева DerivedData на системных 256 ГБ — тесно. Расширение SSD +1 ТБ хотя бы на одном воркере (+$12,5/мес), разделите кэш и Archive.
  • Стратегия подписи: параллельные Archive везде = Distribution-сертификаты на каждом keychain — или только primary подписывает, воркеры только для тестов.
  • TB5 не заменяет публичный доступ: ноутбук по-прежнему по SSH/VNC через публичные IP; сегмент TB5 внутренний и по задумке не выставлен в интернет.

Расчёт стоимости: когда опция TB5 окупается

Базовый тариф SpinMac одинаков во всех пяти регионах (Сингапур, Япония (Токио), Южная Корея (Сеул), Гонконг, восточное побережье США): $21,2/день, $57,3/неделю, $106,1/мес, $288,6/квартал за машину. Кластеризация TB5 на хост: +$1,5/день, +$4,1/неделю, +$7,5/мес, +$20,4/квартал. Пример три машины на неделю:

Compute: 3 × $57,3 = $171,9/неделю
Опция TB5: 3 × $4,1 = $12,3/неделю (~7 % от compute)
Итого $184,2/неделю — около $26,3/день за три связанных узла M4.

Против покупки железа: три Mac mini M4 от ~$1 800 плюс кабели, стойка, электричество — без масштабирования по требованию. Против «трёх облаков только по WAN»: та же цена машин, но при десяти sync 40 ГБ в неделю время ожидания часто превышает $12,3 разницы за TB5.

Брать TB5, если: минимум два хоста на одном узле с ежедневной синхронизацией крупных артефактов или кэша; или CI-матрицы с рутинно тремя и более параллельными macOS-джобами. Можно без TB5, если один хост надолго или DR в нескольких регионах — межузлового TB5 нет; S3-совместимое хранилище для build-кэша.

Новый клиент: несколько хостов и TB5 на странице заказа. Существующий инстанс: добавление параллельного соединения из консоли, без миграции данных.

Итог: 80 Gbps снимает трение совместной работы, не пик одной машины

Вопрос из заголовка — каков опыт параллельного Thunderbolt 5 на 80 Gbps? Одной фразой: несколько Mac mini обмениваются данными как серверы в одной стойке — iperf3 около 60–68 Gbps, крупные файлы с минут до секунд; полная одиночная сборка Xcode по времени та же. Ценность кластера — параллелизм и повторное использование кэша, а не более быстрый чип.

Для клиентов SpinMac опция TB5 означает: вы уже выбрали физические облачные Mac и хотите снизить трение мультимашинной работы — без покупки кабелей, без переговоров с colo, одна галочка на том же узле. Если команда застряла на «ферма сборки да, передачи между машинами слишком медленные» — используйте цифры и шаги здесь как чеклист PoC.

Ваш сценарий Рекомендация
Один разработчик, редкий Archive Одного M4 достаточно, TB5 не нужен
Несколько схем / пакетов в день параллельно 2–4 хоста на одном узле + TB5, общий DerivedData
Шардированный инференс, видеорендер-пайплайны TB5 + расширение SSD при необходимости, центральный узел в цепи
DR в нескольких регионах Хосты по регионам отдельно, TB5 N/A — объектное хранилище
Выделенное железо · TB5 опционально

Соберите облачный кластер сборки Mac mini

SpinMac поддерживает кластеризацию Thunderbolt 5 для нескольких Mac mini M4 на одном узле — физические линии 80 Gbps. От $21,2/день, опция TB5 от $1,5/день, активация за 1–5 минут, пять регионов.

$21.2 / день
ЧипApple M4
CPU10 выделенных ядер
Память16 GB единая
МежсоединениеTB5 80 Gbps
SLA99,9 %
Активация1–5 мин