Skip to main content

配置速率限制

您可以使用 管理控制台 为 GitHub Enterprise Server 配置速率限制。

谁可以使用此功能?

Site administrators can configure rate limits for a GitHub Enterprise Server instance.

关于 GitHub Enterprise Server 的速率限制

速率限制有助于防止 你的 GitHub Enterprise Server 实例 上的资源过度使用,这些资源可能会影响所有用户的可用性或性能。 可以配置 GitHub Enterprise Server APIs 和 GitHub Actions 的速率限制。

谨慎实施速率限制,并在调整限速时与用户沟通。 从宽松的速率限制开始,并逐渐调整它们以适应你的环境。

还可以为对 管理控制台 的身份验证尝试配置速率限制。 有关详细信息,请参阅“管理对管理控制台的访问”。

为 GitHub Enterprise Server APIs 启用速率限制

对 GitHub Enterprise Server APIs 的请求次数过多可能会减慢您的实例速度或使其不可用。 有关 API 速率限制如何影响用户的详细信息,请参阅 REST API 的速率限制

可以使用管理程序中的 ghe-config 实用工具将特定用户从 API 速率限制中免除。 有关详细信息,请参阅“命令行实用程序”。

注意

管理控制台 列出了每种速率限制的时限(按分钟或按小时)。

  1. 在 GitHub Enterprise Server 上的管理帐户中,在任一页面的右上角,单击“”。

  2. 如果你尚未在“站点管理员”页上,请在左上角单击“站点管理员”。1. 在“ 站点管理”边栏中,单击“管理控制台”****。

  3. 在“速率限制”下,选择“启用 HTTP API 速率限制”。

  4. 为每个 API 输入经过身份验证和未经身份验证的请求的限制,或接受预填充的默认限制。

  5. 在“设置”边栏下,单击“保存设置”。

    注意

    保存 管理控制台 中的设置会重启系统服务,这可能会导致用户可察觉的停机时间。

  6. 等待配置运行完毕。

启用二级费率限制

次级速率限制有助于保持 你的 GitHub Enterprise Server 实例 对所有用户的稳定性。

  1. 在 GitHub Enterprise Server 上的管理帐户中,在任一页面的右上角,单击“”。

  2. 如果你尚未在“站点管理员”页上,请在左上角单击“站点管理员”。1. 在“ 站点管理”边栏中,单击“管理控制台”****。

  3. 在“速率限制”下,选择“启用二级速率限制”。

  4. 输入总请求数、CPU 限制和搜索使用的 CPU 限制,或接受预填充的默认限制。

  5. 在“设置”边栏下,单击“保存设置”。

    注意

    保存 管理控制台 中的设置会重启系统服务,这可能会导致用户可察觉的停机时间。

  6. 等待配置运行完毕。

启用 Git 速率限制

如果有 GitHub 的员工建议使用它,你可以按存储库网络或按用户 ID 应用 Git 速率限制。 Git 速率限制以每分钟并发操作进行度量,并适应当前的 CPU 负载。

警告

除非 GitHub 的工作人员直接建议,否则请保持此设置为禁用。 Git 操作很少是导致 CPU 和 RAM 使用的主要驱动因素。 启用此功能可以使 Git 操作更有可能在高负载下失败,但无法解决根本原因。

  1. 在 GitHub Enterprise Server 上的管理帐户中,在任一页面的右上角,单击“”。

  2. 如果你尚未在“站点管理员”页上,请在左上角单击“站点管理员”。1. 在“ 站点管理”边栏中,单击“管理控制台”****。

  3. 在“速率限制”下,选择“启用 Git 速率限制”。

  4. 在“存储库网络限制”下,为每个存储库网络键入限制。

  5. 在“用户 ID 限制”下,键入每个用户 ID 的限制。

  6. 在“设置”边栏下,单击“保存设置”。

    注意

    保存 管理控制台 中的设置会重启系统服务,这可能会导致用户可察觉的停机时间。

  7. 等待配置运行完毕。

配置 GitHub Actions 的速率限制

可以将速率限制应用于 GitHub Actions 工作流运行。 有关 GitHub Actions 的详细信息,请参阅“企业版GitHub Actions 之介绍”。

关于 GitHub Actions 的速率限制

你的 GitHub Enterprise Server 实例将每个 GitHub Actions 工作流作业分配给一个运行器。 如果实例无法立即将作业分配给可用的任务执行者,作业将被排入队列中等待。 如果 GitHub Actions 遇到持续的高负载,队列可能积压,你的 GitHub Enterprise Server 实例 的性能可能会下降。

为避免这种情况,可以为 GitHub Actions 配置速率限制。 此速率限制以每分钟作业运行数为单位。 GitHub Enterprise Server 对实例上的所有作业运行应用速率限制。 如果运行超过速率限制,则其他运行将失败,而不是进入队列。 以下错误显示在运行注释中。

已超出工作流运行请求的速率限制。 请稍等,然后重试运行。

良好的速率限制可以保护你的 GitHub Enterprise Server 实例免受GitHub Actions使用量异常激增的影响,而不会干扰日常操作。 正确的阈值取决于实例的可用资源和典型工作负荷。 有关 GitHub Actions的硬件要求的详细信息,请参阅 GitHub Actions for GitHub Enterprise Server 使用入门

默认情况下,禁用 GitHub Actions 的速率限制。 GitHub Enterprise Server 可以处理临时使用峰值,不会有问题,因此速率限制可预防持续高负载。 除非遇到性能问题,否则请将其禁用。 在某些情况下,GitHub 支持 可能建议启用 GitHub Actions 的速率限制。

启用或禁用 GitHub Actions 的速率限制

  1. 通过 SSH 连接到 你的 GitHub Enterprise Server 实例。 如果实例包含多个节点,例如,如果配置了高可用性或异地复制,则通过 SSH 连接到主节点。 如果使用群集,则可以通过 SSH 连接到任何节点。 将 HOSTNAME 替换为实例的主机名,或节点的主机名或 IP 地址。 有关详细信息,请参阅“访问管理 shell (SSH)”。

    Shell
    ssh -p 122 admin@HOSTNAME
    
  2. 若要启用和配置速率限制,请运行以下两个命令,将 RUNS-PER-MINUTE 替换为所选值。

    ghe-config actions-rate-limiting.enabled true
    ghe-config actions-rate-limiting.queue-runs-per-minute RUNS-PER-MINUTE
    
  3. 若要禁用速率限制,请运行以下命令。

    ghe-config actions-rate-limiting.enabled false
    
  4. 若要应用配置,请运行以下命令。

    ghe-config-apply
    
  5. 等待配置运行完毕。

控制实时更新服务的速率

如果 GitHub Enterprise Server 实例的 AJAX 请求数导致问题,则可能需要调整这些实时更新使用的 WebSocket 控制器的速率限制。 有关如何查看活动请求的详细信息,请参阅 关于监控 仪表板

启用主要速率限制后,默认限制是每个 IP 地址每分钟 100 个请求。 使用管理 shell 中的 ghe-config 实用工具设置为 app.github.web-sockets-rate-limit 每个 IP 地址每分钟允许的请求数,或禁用此速率限制。 将限制设置为任何非正整数值(例如, 0-1disabled会禁用 WebSocket 控制器上的速率限制。

更改这些设置后,运行 ghe-config-apply 以应用它们。