Skip to main content

配置速率限制

您可以使用 Management Console 为 GitHub Enterprise Server 配置速率限制。

为 GitHub Enterprise Server APIs 启用速率限制

对 GitHub Enterprise Server APIs 启用速率限制可以防止个人或未经身份验证的用户过度使用资源。 有关详细信息,请参阅“REST API 中的资源”。

可使用管理 shell 中的 ghe-config 实用工具使用户列表免受 API 速率限制。 有关详细信息,请参阅“命令行实用工具”。

注意:Management Console 列出了每种速率限制的时限(按分钟或按小时)。

  1. 从 GitHub Enterprise Server 上的管理帐户任意页面的右上角,单击

    用于访问站点管理员设置的火箭图标的屏幕截图

  2. 如果你尚未在“站点管理员”页上,请在左上角单击“站点管理员”。

    “站点管理员”链接的屏幕截图 1. 在左侧边栏中,单击“Management Console”。 左侧边栏中的 Management Console 选项卡

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

  4. 输入对每个 API 的已验证和未验证请求的限制,或者接受预先填入的默认限制。

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

    Management Console 中的“保存设置”按钮的屏幕截图

    注意:保存 Management Console 中的设置会重启系统服务,这可能会导致用户可察觉的停机时间。

  6. 等待配置运行完毕。

    配置实例

配置速率限制,用于对 Management Console 进行身份验证

可以为 Management Console 配置锁定时间和登录尝试限制。 如果用户登录尝试超出限制,Management Console 将在锁定时间设置的时长内保持锁定状态。 要立即解锁 Management Console,请通过管理 shell 使用 ghe-reactivate-admin-login 命令。 有关详细信息,请参阅“命令行实用工具”和“访问管理 shell (SSH)”。

  1. 从 GitHub Enterprise Server 上的管理帐户任意页面的右上角,单击

    用于访问站点管理员设置的火箭图标的屏幕截图

  2. 如果你尚未在“站点管理员”页上,请在左上角单击“站点管理员”。

    “站点管理员”链接的屏幕截图 1. 在左侧边栏中,单击“Management Console”。 左侧边栏中的 Management Console 选项卡

  3. 在“登录尝试速率限制”下,配置锁定时间和登录尝试速率限制或接受预先填充的默认设置。 用于配置锁定时间和登录尝试速率限制的字段 1. 在左侧边栏下,单击“保存设置”。

    Management Console 中的“保存设置”按钮的屏幕截图

    注意:保存 Management Console 中的设置会重启系统服务,这可能会导致用户可察觉的停机时间。

  4. 等待配置运行完毕。

    配置实例

启用二级费率限制

设置辅助速率限制可保护 your GitHub Enterprise Server instance 上的整体服务级别。

  1. 从 GitHub Enterprise Server 上的管理帐户任意页面的右上角,单击

    用于访问站点管理员设置的火箭图标的屏幕截图

  2. 如果你尚未在“站点管理员”页上,请在左上角单击“站点管理员”。

    “站点管理员”链接的屏幕截图 1. 在左侧边栏中,单击“Management Console”。 左侧边栏中的 Management Console 选项卡

  3. 在“速率限制”下,选择“启用二级速率限制”。 用于启用二级费率限制的复选框

  4. 输入总请求限制、CPU 限制或对搜索的 CPU 限制,或接受预先填入的默认限制。

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

    Management Console 中的“保存设置”按钮的屏幕截图

    注意:保存 Management Console 中的设置会重启系统服务,这可能会导致用户可察觉的停机时间。

  6. 等待配置运行完毕。

    配置实例

启用 Git 速率限制

如果有 GitHub 的员工建议使用它,你可以按存储库网络或按用户 ID 应用 Git 速率限制。 Git 速率限制以每分钟并行操作数表示,不过会根据当前 CPU 负荷进行调整。

警告:建议禁用此设置,除非有 GitHub 的员工建议使用。 Git 操作很少是导致 CPU 和 RAM 被使用的因素。 启用此功能会导致 Git 操作在高负载条件下的失败率增加,而无法确认这些情况发生的根本原因。

  1. 从 GitHub Enterprise Server 上的管理帐户任意页面的右上角,单击

    用于访问站点管理员设置的火箭图标的屏幕截图

  2. 如果你尚未在“站点管理员”页上,请在左上角单击“站点管理员”。

    “站点管理员”链接的屏幕截图 1. 在左侧边栏中,单击“Management Console”。 左侧边栏中的 Management Console 选项卡

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

  4. 输入对每个仓库网络或用户 ID 的限制。 存储库网络和用户 ID 限制的字段 1. 在左侧边栏下,单击“保存设置”。

    Management Console 中的“保存设置”按钮的屏幕截图

    注意:保存 Management Console 中的设置会重启系统服务,这可能会导致用户可察觉的停机时间。

  5. 等待配置运行完毕。

    配置实例

配置 GitHub Actions 的速率限制

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

关于 GitHub Actions 的速率限制

GitHub Enterprise Server 实例将每个 GitHub Actions 工作流作业分配给运行器。 如果实例无法立即将作业分配给可用的运行器,作业将在队列中等待,直到运行器可用。 如果 GitHub Actions 遇到持续高负载,队列就可以备份,且 your GitHub Enterprise Server instance 的性能可能会降低。

为了避免这种性能降低,可以配置 GitHub Actions 的速率限制。 此速率限制以每分钟作业运行数表示。 GitHub Enterprise Server 计算并应用实例上所有作业运行的总数的速率限制。 如果运行数超过速率限制,其他运行将失败,而不是进入队列。 以下错误将显示在运行的注释中。

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

适当的速率限制可保护 your GitHub Enterprise Server instance 免受 GitHub Actions 的异常使用,而不会干扰日常操作。 确切的阈值取决于实例的可用资源和总体负载配置文件。 有关 GitHub Actions 硬件要求的详细信息,请参阅“GitHub Enterprise Server 的 GitHub Actions 入门”。

默认情况下,禁用 GitHub Actions 的速率限制。 由于 GitHub Enterprise Server 可以在不降低性能的情况下处理临时使用高峰,因此此速率限制旨在防止持续高负载。 建议将此速率限制保留禁用状态,除非遇到性能问题。 在某些情况下,GitHub Support 可能会建议启用 GitHub Actions 的速率限制。

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

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

    $ 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. 等待配置运行完毕。