连接、构建、排查

让云端 Mac 从首次连接到稳定运行都有明确下一步

先确认访问路径与安全边界,再配置 Xcode、Runner、MLX 或媒体工作流。发生异常时,按照网络、认证、磁盘、工具链、进程资源和区域链路逐层定位,避免同时改动多个变量。

标准交付流程约 4 分钟。节点与订单的实际可用状态以控制台实时返回为准。

SUPPORT / RUNBOOK 任务交付与排查登记板
可执行步骤
01

首次连接

核对节点、来源地址和访问方式,先完成个人会话,再交接给团队成员。

输出:连接基线
02

构建运行

固定工具版本、缓存目录和并发上限,让 Xcode 或 Runner 作业可以重复执行。

输出:可复现作业
03

异常定位

保留时间范围、报错原文、资源指标与复现步骤,再通过控制台提交工单。

输出:诊断记录
独享 Apple Silicon 物理节点 非虚拟机 全年 365 天运行
建议阅读顺序

快速开始索引

五个步骤按依赖关系排列。前一步的记录会成为后一步的输入;团队场景不要跳过密钥轮换和访问撤销。

  1. 01

    完成下单

    选择机型、租期、节点和存储附加项,确认付款后等待控制台返回订单状态。不要根据旧截图判断当前可用性。

  2. 02

    接收访问凭据

    在控制台核对实例、节点和访问说明。凭据只保存在受控密码管理工具中,不转发到群聊或提交进代码仓库。

  3. 03

    完成首次登录

    从可信网络建立远程桌面或 SSH 会话,记录首次连接时间、客户端版本和来源公网地址,形成可比较的连接基线。

  4. 04

    轮换密钥

    创建团队自己的 SSH 密钥与最小权限账号,验证新路径可用后再撤销临时访问材料,避免先删后验造成锁定。

  5. 05

    完成团队交接

    交接任务、分支、缓存状态、运行进程和输出位置,不交接个人凭据。明确下一位操作者和租期结束前的数据迁出责任。

连接前准备

四种连接路径,各自保留一份最小检查集

连接异常时先确认使用的是哪条路径。远程桌面、SSH、文件传输和防火墙白名单的检查项不同,不应混在一次排查里。

图形会话

安全远程桌面

准备支持加密连接的客户端,先在单一可信网络测试。记录客户端版本、显示分辨率、键盘布局和是否使用代理网络。

  • 首次连接先用单显示器与默认分辨率
  • 确认剪贴板和文件映射是否符合团队策略
  • 输入延迟异常时保留连续测试时段
适合 Xcode、Final Cut Pro 与图形化管理
命令行

SSH

为每位操作者分配独立密钥,首次连接前核对实例信息。自动化作业使用专用账号,不复用个人交互会话。

  • 私钥保存在受控设备并限制文件权限
  • 为团队成员分别维护授权公钥
  • 连接失败时保留详细模式输出但移除敏感内容
适合自动化、日志检查与远程命令
数据通道

文件传输

大文件优先使用可续传工具,并为输入、处理中间文件和输出物划分目录。先传小样验证权限与磁盘空间,再启动完整同步。

  • 传输前后核对文件数量与校验值
  • 模型、素材和构建缓存分目录保存
  • 避免在运行中的缓存目录直接覆盖文件
适合模型、素材、构建产物和日志回传
访问边界

防火墙白名单

只放行已确认的来源公网地址和必要端口。家庭或移动网络地址变化后,应更新规则而不是扩大到不受控网段。

  • 分别记录办公网络、Runner 与运维出口
  • 为临时来源设置明确撤销时间
  • 变更后从允许与不允许的来源各测试一次
适合固定办公出口与受控自动化网络
持续集成

把 GitHub Actions 自托管 Mac Runner 做成可回收作业

Runner 是否稳定,取决于版本固定、并发边界、缓存归属和作业后清理。不要让前一个任务的状态成为下一个任务的隐形依赖。

注册与标签

标签只描述可验证能力

标签建议覆盖芯片架构、Xcode 主版本、用途和队列边界。不要把临时项目名当成长期能力标签,否则调度规则会随项目变化而失真。

注册方式
组织或仓库专用
运行账号
独立最小权限账号
验证动作
执行一次无敏感信息的测试作业
并发与缓存

先限制并发,再观察资源峰值

从单作业基线开始,分别记录 CPU、统一内存、磁盘写入和构建时长。只有任务相互独立且峰值仍有余量时,才增加并发。

依赖缓存
按锁文件与工具版本分键
派生数据
按项目隔离并设置清理上限
并发判断
以峰值资源和队列等待共同决定
隔离与清理

签名材料不进入通用缓存

敏感材料只在需要的作业阶段注入,作业完成后撤销临时文件、环境变量和后台进程。失败路径与成功路径必须执行同一套清理。

敏感材料
独立权限与独立生命周期
失败重试
先清理残留再重新排队
租期结束
撤销 Runner、密钥与访问规则
开发环境

工具版本、安装来源与缓存目录都要可追踪

先记录现状再升级。对持续构建主机,版本稳定和可复现通常比追随最新版本更重要。

云端 Mac 开发环境维护清单
工具 首次配置 日常维护 异常时先检查
Xcode 固定主版本,记录命令行工具选择和首次启动状态。 升级前保留项目兼容性结果,按项目隔离 DerivedData。 当前选择路径、SDK、模拟器状态、磁盘余量和完整构建日志。
Homebrew 使用单一受控账号安装,保存依赖清单和必要版本约束。 更新前查看变更,避免在构建作业执行中途升级依赖。 路径优先级、目录所有权、架构匹配和公式版本。
Ruby 使用项目声明的版本,锁定 Bundler 与依赖文件。 缓存可复用依赖,但不跨不兼容 Ruby 版本混用。 解释器路径、Gem 安装目录、锁文件和原生扩展构建输出。
Node.js 按项目固定运行时和包管理器版本,启用锁文件校验。 缓存下载内容而非不透明工作目录,定期清理失效缓存。 Node 路径、包管理器版本、锁文件差异和原生模块架构。
容器替代流程 将 Linux 容器步骤放到外部 Linux 执行环境,Mac 节点负责 macOS 专属构建与测试。 用脚本统一输入与产物格式,减少平台之间的手工搬运。 平台假设、文件权限、换行格式、架构和产物传递路径。
构建缓存 按项目、分支策略、工具版本和锁文件建立缓存键。 设置容量阈值与清理顺序,先删可再生缓存,再处理工作文件。 命中率、目录权限、剩余空间、文件数量和并发写入。
高内存与大文件任务

MLX 推理和媒体制作要同时管理内存、磁盘与回传路径

两类任务都可能长时间占用统一内存并产生大体积输出。开始前明确输入文件、临时目录、完成条件和回传方式。

MLX 推理

模型落盘后先做小批次基线

模型文件、量化版本、输入样本与结果分别落到可识别目录。先运行小批次,记录加载时长、峰值统一内存、单次推理时间和输出大小,再决定批次与并发。

  1. 文件准备:验证模型文件完整性,预留模型、缓存与输出共同所需空间。
  2. 资源观察:同时看内存压力、交换活动、磁盘读写和进程持续时间。
  3. 长任务保活:使用可恢复的任务管理方式,输出阶段进度和中间结果。
  4. 结果回传:先生成清单与校验值,再传输结果,避免只凭文件名判断完成。
64GB 高内存任务可评估 VPSGit M4 Pro:M4 Pro、64GB、2TB。
媒体制作

代理素材、工程文件与成品分开同步

远程使用 Final Cut Pro 时,先用小段代理素材验证输入延迟、预览流畅度和音画同步。完整素材上传前确认磁盘余量与回传时间预算。

  1. 素材同步:原始素材、代理文件和工程文件分目录,避免覆盖正在使用的媒体。
  2. 编辑基线:记录远程桌面分辨率、网络路径和播放质量,便于比较变化。
  3. 导出管理:导出前确认目标格式、临时空间和命名规则,长导出保留阶段日志。
  4. 成品回传:先传小样确认,再回传最终文件与校验信息,完成后清理可再生文件。
大素材可选择 +1TB SSD 或 +2TB SSD,并在任务前核对迁出时间。
逐层排查

一次只验证一层,保留每一步的结果

先判断问题发生在本地、连接路径还是节点内部。每完成一步就记录现象是否变化;不要在同一轮同时升级工具、改网络和清缓存。

  1. 01

    网络

    从同一来源测试基本连通、丢包与抖动,再换一个已知稳定网络复测。记录客户端网络类型、是否经过代理以及问题出现的时间范围。

  2. 02

    认证

    确认使用的是当前授权账号与密钥,检查本地文件权限、授权范围和最近轮换记录。不要把凭据内容写进工单。

  3. 03

    磁盘

    检查剩余容量、目录所有权、文件数量和大目录增长来源。构建失败时同时检查临时目录、缓存目录与输出目录。

  4. 04

    构建工具链

    记录 Xcode、SDK、Ruby、Node.js、包管理器和依赖锁文件版本,对比最后一次成功作业,不先执行全局升级。

  5. 05

    进程资源

    观察 CPU、统一内存、交换活动、磁盘写入和残留子进程。区分单次峰值、持续占用和任务结束后未释放三种情况。

  6. 06

    区域链路

    使用同一客户端、同一操作和相近时段比较链路,避免把不同任务负载误判为区域差异。跨区迁移需重新确认目录并安排数据转移。

提交工单前

把可复现信息整理成一张诊断单

工单按影响范围与订单状态处理。信息完整可以减少来回确认,但请移除密钥、访问口令、签名材料和业务数据。

  • 订单编号、所选节点与机型
  • 问题开始时间和持续范围
  • 受影响的连接方式或作业阶段
  • 可重复的最短操作步骤
  • 完整报错原文与必要日志片段
  • 已经完成的检查和每一步结果
服务可用率口径
99.9%服务可用率目标

所有节点全年 365 天正常运行,不设置固定停机时段。可用率按服务条款定义的统计范围计算,用户自身操作、第三方依赖和不可控事件按条款界定。

近 90 天状态登记

按三个连续 30 天区间呈现,具体事件记录与最新状态以控制台为准。

状态持续记录
最近 30 天当前区间
事件确认后更新记录
第 31–60 天历史区间
按服务事件口径归档
第 61–90 天历史区间
保留事件影响范围记录
服务额度

达到服务条款规定的条件时,可按受影响周期申请服务额度。申请需提供订单、影响时段和可验证现象,具体认定与额度以服务条款为准。

安全操作

从进入节点到租期结束,都要有明确责任人

安全不是一次设置。账号、权限、密钥、敏感材料、备份和撤销分别建立检查点,团队交接时逐项确认。

01

独立账号

每位操作者使用可识别账号,不共享个人会话。自动化 Runner 使用与人工操作分开的服务账号。

检查:人员与账号一一对应
02

最小权限

只授予完成当前任务所需的目录、命令和网络访问。临时权限应注明用途与撤销时间。

检查:没有无用途的长期高权限
03

密钥轮换

成员变化、设备丢失或权限边界调整后立即轮换。先验证新密钥,再撤销旧密钥并记录结果。

检查:授权清单与实际配置一致
04

敏感材料清理

签名文件、临时令牌、环境变量和日志中的敏感片段按任务生命周期清理,不进入通用缓存。

检查:成功与失败路径都执行清理
05

结束前备份

租期结束前迁出源码变更、构建产物、模型结果、媒体工程和必要日志,并验证备份可读取。

检查:备份位置与校验结果已记录
06

访问撤销

任务完成后撤销账号、公钥、Runner 注册、白名单和临时共享路径,确认后台进程已经停止。

检查:节点外部入口已全部回收
准备开始

先选机型与节点,再按这份运行手册完成交付

三档独享 Apple Silicon 物理节点均可按天、周、月或季租用。支持 USDT-TRC20 与 Visa / Mastercard / Amex(经 Stripe),统一以 USD 结算。