Параллельные сборки на macOS ощущаются быстро, пока не поднимается«водная линия» SSD: DerivedData, локальные кэши, слои контейнеров и временные деревья растут вместе с числом одновременных job, а боль проявляется какзалипание очередей, дрожащие тесты и ночная зачистка диска— часто в чужом часовом поясе. Этот FAQ — практический прогноз для команд в 2026 году, которые подбираютвыделенные Mac mini M4вСингапуре, Токио, Сеуле, Гонконге, на востоке и западе США, сравнивают16 ГБ / 256 ГБ и 24 ГБ / 512 ГБ, решают, когдарасширение NVMe 1 ТБ или 2 ТБдешевле, чем ещё одна машина, и отделяютнесколько параллельных слотов на одном хостеотдобавления второго выделенного места, чтобы не платить дважды за неверное узкое место.
Сначала измерьте «водную линию» диска, потом поднимайте параллелизм
Здоровый CI считает свободное местоопережающим индикатором, а не сигналом тревоги после факта. Прежде чем удваивать флаги-jили вешать ещё одного self-hosted runner на тот же хост, снимитеснимок «худшего дня»: пик одновременных задач, самый тяжёлый рабочий набор дляxcodebuildили Bazel, образы Docker, которые вы не готовы срезать, и локальные зеркала реестров. Добавьте запас под macOS, логи падений и следующий минорный Xcode. Если прогноз уже укладывается в20–30 % свободногона корне 256 или 512 ГБ, вы в одном плохом merge от дросселирования: NVMe быстрый, нопереполненный диск всё равно убивает хвостовую задержку— метаданные APFS и давление на память плохо сочетаются с рваными компиляциями.
Шесть метрополий: один SKU, разное давление на кэши и очереди
Выбор региона не меняетбайты на одну компиляцию, но меняет, как часто выперекачиваетеартефакты через океан. Команда, привязанная кТокио, Сеулу, Сингапуру или Гонконгу, обычно ставит npm, Maven и внутренний Docker рядом с APAC; облачный Mac реже видит гигантские сетевые провалы, и узким местом выглядит CPU. Узел навостоке или западе США, тянущий тот же монорепозиторий из APAC, чаще получает промахи кэша и снова наполняет SSD. Прогоните один контролируемый билд в каждой кандидатной метрополии и сравнитедолю попаданий в кэш и пик занятости диска— ими должен управляться выбор региона, а не офисная политика. Общую карту задержки, памяти и аренды по шести узлам — в FAQ: облачный Mac M4, регионы, задержка и хранилище.
Mac mini M4 16 ГБ/256 ГБ против 24 ГБ/512 ГБ при параллельной компиляции
Входной профиль16 ГБ ОЗУ и 256 ГБ SSDподходит для одиночных iOS-сборок, небольших пакетов Swift и агентов, которые выносят тяжёлые объекты в удалённые кэши. Он ломается, если на одном хосте запускаетедве компиляционно-тяжёлые задачи сразу: давление на память перетекает в сжатие и поведение, похожее на своп, а диск взлетает из-за дублирующихся модульных кэшей. Шаг24 ГБ / 512 ГБчасто дешевле, чем ночные расследования «почему CI плавает»: он даётпараллельные фазы линковки и тестовбез постоянной эвикции DerivedData. Если на одну машину вешаете несколько долгоживущих runner, начинайте с 24 ГБ / 512 ГБ и считайте 16 ГБ / 256 ГБшардом пула, а не «боссом, который всё тянет».
Расширение NVMe 1–2 ТБ, параллельные места на одном Mac и добавление второго места
Когда прогноз показывает устойчивое использование примерновыше 400–450 ГБна машине класса 512 ГБ, вы в зоне выбора, гдерасширение NVMeчасто побеждает ещё один набор ночных скриптов уборки.1 ТБудобно держать крупные монорепозитории, несколько установок Xcode и щедрые выходы Bazel;2 ТБ— если нужны тяжёлые медиафикстуры, много рантаймов симулятора или толстые слои Docker, которые должны оставаться тёплыми. Напротив,несколько параллельных «мест»на том же Mac — больше слотов runner, чем машина честно обслуживает — помогает только при уже имеющемся запасе CPU и диска; иначе вы создаётевнутреннюю очередь, похожую на инцидент инфраструктуры.Второе выделенное место(ещё один Mac) — правильный рычаг, когда нужныизоляциямежду релизным и экспериментальным контурами, разные образы macOS или независимые зоны отказа, а не ещё сотня гигабайт быстрого NVMe на одном корне. Пространства имён кэша и схему артефактов разбираем глубже в Bazel и Gradle: удалённая сборка в пуле облачных Mac в 2026 году; проводку GitHub Actions, кэшей и дисков по шести метрополиям — в FAQ по самохостовым macOS runner и шести регионам.
Чек-лист, чтобы не арендовать «не ту форму»
- Зафиксирован липик занятости дискав самое жаркое окно merge, включая симуляторы, Docker и локальные кэши, а не только один «чистый» билд?
- Рост параллелизма на одном хосте держитCPU занятымили сразу бьёт попамяти и диску— если по второму, сначала исправьте уровни, а не число слотов.
- МеждуСингапуром, Токио, Сеулом, Гонконгом, востоком и западом СШАкакие две метрополии дают приемлемыеRTT к артефактам и стабильную долю попаданий в кэшдля реальных реестров?
- Снимет лирасширение 1–2 ТБрегулярную уборку, или вам на самом деле нужновторое выделенное месторади изоляции и радиуса взрыва?
Когда StoreKit и региональные песочницы добавляют ещё один слой артефактов и кэшей, сверьтесь с FAQ по App Store Sandbox и облачному Mac в шести регионах — там те же метрополии, но другой профиль диска.
На vpszap диск и параллелизм опираются на реальное железо
Прогноз запаса SSD имеет смысл только если под вамипредсказуемая машина. vpszap сдаётфизические системы Apple Silicon Mac miniсполным отсутствием слоя виртуализациимежду вами и NVMe — CPU, ОЗУ и диск целиком ваши, поэтому параллельные компиляции не спорят с «невидимым соседом». Инстансы активируются примерно запять минутс одновременной поставкойSSH и VNC; всплески можно выравнивать подням и неделям, ровную нагрузку — помесяцу или кварталу, без долгосрочного контракта. ДоступныСингапур, Токио, Сеул, Гонконг, США восток и запад— чтобы задержка совпадала с разработчиками и путями артефактов.
Если хотите этот сценарий на железе, которое ведёт себя как лабораторный Mac под столом — только в ближайшем дата-центре, откройте главную страницу облачного Mac mini vpszap.