Skip to main content

Configuring rate limits

You can set rate limits for GitHub Enterprise Server using the 管理控制台.

Enabling rate limits for the GitHub Enterprise Server APIs

Enabling rate limits on the GitHub Enterprise Server APIs can prevent overuse of resources by individual or unauthenticated users. For more information, see "Resources in the REST API."

You can exempt a list of users from API rate limits using the ghe-config utility in the administrative shell. For more information, see "Command-line utilities."

Note: The 管理控制台 lists the time period (per minute or per hour) for each rate limit.

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

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

  2. 如果您尚未进入“站点管理员”页面,请在左上角单击 Site admin(站点管理员)

    "站点管理员" 链接的屏幕截图

  3. 在左侧边栏中,单击 管理控制台左侧边栏中的 管理控制台 选项卡

  4. Under "Rate Limiting", select Enable HTTP API Rate Limiting. Checkbox for enabling API rate limiting

  5. Type limits for authenticated and unauthenticated requests for each API, or accept the pre-filled default limits.

  6. 在左侧边栏下,单击 Save settings(保存设置)

    管理控制台 中保存设置按钮的屏幕截图

    注意: 管理控制台 中的保存设置将重新启动系统服务,这可能会导致用户可见的停机时间。

  7. 等待配置运行完毕。

    配置实例

Enabling secondary rate limits

Setting secondary rate limits protects the overall level of service on 您的 GitHub Enterprise Server 实例.

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

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

  2. 如果您尚未进入“站点管理员”页面,请在左上角单击 Site admin(站点管理员)

    "站点管理员" 链接的屏幕截图

  3. 在左侧边栏中,单击 管理控制台左侧边栏中的 管理控制台 选项卡

  4. Under "Rate Limiting", select Enable Secondary Rate Limiting. Checkbox for enabling secondary rate limiting

  5. Type limits for Total Requests, CPU Limit, and CPU Limit for Searching, or accept the pre-filled default limits.

  6. 在左侧边栏下,单击 Save settings(保存设置)

    管理控制台 中保存设置按钮的屏幕截图

    注意: 管理控制台 中的保存设置将重新启动系统服务,这可能会导致用户可见的停机时间。

  7. 等待配置运行完毕。

    配置实例

Enabling rate limits for Git

You can apply Git rate limits per repository network or per user ID. Git rate limits are expressed in concurrent operations per minute, and are adaptive based on the current CPU load.

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

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

  2. 如果您尚未进入“站点管理员”页面,请在左上角单击 Site admin(站点管理员)

    "站点管理员" 链接的屏幕截图

  3. 在左侧边栏中,单击 管理控制台左侧边栏中的 管理控制台 选项卡

  4. Under "Rate Limiting", select Enable Git Rate Limiting. Checkbox for enabling Git rate limiting

  5. Type limits for each repository network or user ID. Fields for repository network and user ID limits

  6. 在左侧边栏下,单击 Save settings(保存设置)

    管理控制台 中保存设置按钮的屏幕截图

    注意: 管理控制台 中的保存设置将重新启动系统服务,这可能会导致用户可见的停机时间。

  7. 等待配置运行完毕。

    配置实例

Configuring rate limits for GitHub Actions

You can apply a rate limit to GitHub Actions workflow runs. For more information about GitHub Actions, see "About GitHub Actions for enterprises."

About rate limits for GitHub Actions

Your GitHub Enterprise Server instance assigns each GitHub Actions workflow job to a runner. If your instance cannot immediately assign a job to an available runner, the job will wait in a queue until a runner is available. If GitHub Actions experiences sustained high load, the queue can back up, and the performance of 您的 GitHub Enterprise Server 实例 may degrade.

To avoid this performance degradation, you can configure a rate limit for GitHub Actions. This rate limit is expressed in job runs per minute. GitHub Enterprise Server calculates and applies the rate limit for the sum total of all job runs on the instance. If runs exceed the rate limit, additional runs will fail instead of entering the queue. The following error will appear in the run's annotations.

You've exceeded the rate limit for workflow run requests. Please wait before retrying the run.

An appropriate rate limit protects 您的 GitHub Enterprise Server 实例 from abnormal usage of GitHub Actions without interfering with day-to-day operations. The exact threshold depends on your instance's available resources and overall load profile. For more information about the hardware requirements for GitHub Actions, see "Getting started with GitHub Actions for GitHub Enterprise Server."

By default, the rate limit for GitHub Actions is disabled. Because GitHub Enterprise Server can handle temporary spikes in usage without performance degradation, this rate limit is intended to protect against sustained high load. We recommend leaving the rate limit disabled unless you are experiencing performance problems. In some cases, GitHub 支持 may recommend that you enable a rate limit for GitHub Actions.

Enabling or disabling rate limits for GitHub Actions

  1. SSH 连接到 您的 GitHub Enterprise Server 实例。 If your instance comprises multiple nodes, for example if high availability or geo-replication are configured, SSH into the primary node. If you use a cluster, you can SSH into any node. For more information about SSH access, see "Accessing the administrative shell (SSH)."

    $ ssh -p 122 admin@HOSTNAME
  2. To enable and configure the rate limit, run the following two commands, replacing RUNS-PER-MINUTE with the value of your choice.

    ghe-config actions-rate-limiting.enabled true
    ghe-config actions-rate-limiting.queue-runs-per-minute RUNS-PER-MINUTE
  3. To disable the rate limit after it's been enabled, run the following command.

    ghe-config actions-rate-limiting.enabled false
    
  4. To apply the configuration, run the following command.

    ghe-config-apply
    
  5. Wait for the configuration run to complete.