计算机知识

Github Action 官方托管 与自托管区别

JACIN··5 分钟阅读

1. 官方 Runner 的配置是默认 2C7G 吗?会动态调整吗?#

  • 默认配置: 是的,对于最常用的 Linux 标准 Runner,官方默认配置确实接近你说的参数。
    • Linux (Standard): 2 vCPU, 7 GB RAM, 14 GB SSD 存储空间。
    • Windows (Standard): 2 vCPU, 7 GB RAM。
    • macOS (Standard): 3 vCPU, 14 GB RAM (M1 芯片) 或其他配置,通常较高。
  • 动态调整: 不会。
    • GitHub 不会根据你任务的负载自动给你“加内存”或“加 CPU”。如果你的编译任务内存溢出(OOM),任务会直接失败。
    • 例外情况: GitHub 提供了 "Larger Runners"(大型 Runner),你可以手动配置使用 4核、8核甚至 64核的机器,但这需要你额外设置并付费(费用比标准版贵得多)。它不是自动调整的,是你必须在 YAML 文件里指定 runs-on: ubuntu-latest-8-cores 这种标签。

2. Self-hosted 会消耗 GitHub 的使用时间(Minutes)吗?#

  • 结论:不会。
  • 详细说明:
    • Self-hosted Runner 是 完全免费 使用 GitHub Actions 服务的。
    • 不消耗你账户里的“每月免费额度”(例如 Free 账号的 2000 分钟/月)。
    • 你哪怕让 Self-hosted Runner 24小时跑满一个月,GitHub 这里的账单也是 0。
    • 成本转移: 你的成本变成了你自己服务器的费用。
特性GitHub-Hosted (官方)Self-hosted (自托管)
环境纯净度每次都是全新的。任务结束,VM直接销毁。环境极其纯净,无残留。环境是持久的。上次编译留下的文件、Docker 镜像、缓存都会保留。
构建速度。每次都要重新拉取 Docker 镜像、重新安装 npm install (除非用了 Actions Cache)。极快。如果你做了缓存,第二次编译可能只需要几秒(利用本地 Docker 层级缓存和 node_modules)。
维护成本。不用管系统升级、磁盘清理、网络配置。。你需要自己装 Docker、Git,还得定期清理 Docker 垃圾(docker prune),否则磁盘很快爆满。
安全性。适合开源项目(Public Repo)。防止恶意 PR 攻击。低 (对公网项目)千万不要在公开仓库用 Self-hosted! 如果有人提个 PR 改了脚本,能直接控制你的服务器挖矿或删库。
网络环境Azure 美国机房网络。连接外网通常较快,但连国内服务器慢。取决于你的服务器。如果你在内网部署,可以直接访问内网数据库进行集成测试。
并发限制受限于 GitHub 套餐(Free 账号通常并发 20 个)。受限于你的服务器数量和性能。你可以开 100 个 Agent 只要你服务器扛得住。

评论

还没有评论,来发第一个吧