Skip to main content

Configuring rate limits (レート制限を構成する)

[Management Console] を使用することで、GitHub Enterprise Server のレート制限を設定できます。

この機能を使用できるユーザーについて

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

のレート制限について

すべてのユーザーのインスタンスの可用性またはパフォーマンスに影響を与える可能性がある お使いの GitHub Enterprise Server インスタンス でリソースが過剰に使用されないようにするには、レート制限を構成できます。 レート制限は、GitHub Enterprise Server APIs と GitHub Actions で構成できます。

レート制限を慎重に実装し、ユーザーと頻繁にコミュニケーションを取りながら、制限を調整します。 ユーザーの作業を中断しないように、GitHub では、制限しないレート制限から始め、環境に合わせて制限を徐々に調整することをお勧めします。

[Management Console] に対して認証のレート制限を構成することもできます。 詳しくは、「管理コンソールへのアクセスの管理」をご覧ください。

GitHub Enterprise Server APIs のレート制限の有効化

GitHub Enterprise Server APIs に対する過剰な数の要求は、インスタンスの可用性とパフォーマンスに影響を与える可能性があります。 API のレート制限がユーザーに与える影響について詳しくは、「REST API のレート制限」をご覧ください。

管理シェルの ghe-config ユーティリティを使用して、API レート制限からユーザーの一覧を除外できます。 詳しくは、「コマンド ライン ユーティリティ」をご覧ください。

Note

[Management Console] には、各レート制限の時間間隔 (毎分もしくは毎時) の一覧が表示されます。

  1. の管理アカウントから、任意のページの右上隅で をクリックします。

  2. [サイト管理者] ページにまだ表示されていない場合は、左上隅の [サイト管理者] をクリックします。

  3. [ サイト管理者] サイドバーで [Management Console] をクリックします。

  4. [レート制限] で [HTTP API レート制限を有効にする] を選択します。

  5. 各APIについて認証済み及び非認証リクエストの制限を入力するか、事前に入力されているデフォルトの制限を承認してください。

  6. [設定] サイドバーで [設定の保存] をクリックします。

    Note

    [Management Console] で設定を保存すると、システム サービスが再起動され、ユーザーにわかるダウンタイムが発生する可能性があります。

  7. 設定の実行が完了するのを待ってください。

セカンダリ レート制限の有効化

セカンダリ レート制限を設定すると、お使いの GitHub Enterprise Server インスタンス上のサービス全体のレベルを保護できます。

  1. の管理アカウントから、任意のページの右上隅で をクリックします。

  2. [サイト管理者] ページにまだ表示されていない場合は、左上隅の [サイト管理者] をクリックします。

  3. [ サイト管理者] サイドバーで [Management Console] をクリックします。

  4. [レート制限] で [セカンダリ レート制限を有効にする] を選択します。

  5. 総リクエストの制限、CPU制限、検索のためのCPU制限を入力するか、事前に入力されているデフォルトの制限を承認してください。

  6. [設定] サイドバーで [設定の保存] をクリックします。

    Note

    [Management Console] で設定を保存すると、システム サービスが再起動され、ユーザーにわかるダウンタイムが発生する可能性があります。

  7. 設定の実行が完了するのを待ってください。

Git のレート制限を有効にする

GitHub のスタッフのメンバーが推奨している場合は、リポジトリ ネットワークごと、またはユーザー ID ごとに Git レート制限を適用できます。 Git レート制限は 1 分あたりの同時操作数で表現され、現在の CPU 負荷に適応します。

Warning

GitHub のスタッフのメンバーによって直接推奨されない限り、この設定は無効のままにすることをお勧めします。 Git 操作は、CPU と RAM の使用率の主要な要因になることはほとんどありません。 この機能を有効にすると、負荷の高い条件下で Git 操作が失敗する可能性が高くなりますが、これらの条件の根本的な原因については対処されません。

  1. の管理アカウントから、任意のページの右上隅で をクリックします。

  2. [サイト管理者] ページにまだ表示されていない場合は、左上隅の [サイト管理者] をクリックします。

  3. [ サイト管理者] サイドバーで [Management Console] をクリックします。

  4. [レート制限] で [Git レート制限の有効化] を選択します。

  5. [リポジトリ ネットワークの制限] に、各リポジトリ ネットワークの制限を入力します。

  6. [ユーザー ID の制限] に、各ユーザー ID の制限を入力します。

  7. [設定] サイドバーで [設定の保存] をクリックします。

    Note

    [Management Console] で設定を保存すると、システム サービスが再起動され、ユーザーにわかるダウンタイムが発生する可能性があります。

  8. 設定の実行が完了するのを待ってください。

GitHub Actions のレート制限を構成する

GitHub Actions のワークフロー実行にレート制限を適用できます。 GitHub Actions について詳しくは、「エンタープライズの GitHub Actions について」をご覧ください。

GitHub Actions のレート制限について

のインスタンスによって、GitHub Actions の各ワークフロー ジョブがランナーに割り当てられます。 インスタンスが使用可能なランナーにジョブをすぐに割り当てることができない場合、ジョブはランナーが使用可能になるまでキューで待機します。 GitHub Actions の負荷が常に高い場合、キューが滞る可能性があり、お使いの GitHub Enterprise Server インスタンスのパフォーマンスが低下することがあります。

このパフォーマンスの低下を回避するには、GitHub Actions のレート制限を構成できます。 このレート制限は、1 分あたりのジョブ実行数で表されます。 は、インスタンス上のすべてのジョブ実行数の合計に対するレート制限を計算して適用します。 レート制限を超えた分の実行は、キューに入れられずに失敗します。 実行のアノテーションに次のエラーが表示されます。

ワークフロー実行要求のレート制限を超えました。 しばらく待ってからもう一度実行してみてください。

レート制限を適切に設定すると、お使いの GitHub Enterprise Server インスタンスは、日常の操作を妨げることなく、GitHub Actions の異常な使用から保護されます。 正確なしきい値は、インスタンスで使用できるリソースと、全体的な負荷のプロファイルによって決まります。 GitHub Actions のハードウェア要件について詳しくは、「GitHub Enterprise Server の GitHub Actions を使い始める」をご覧ください。

既定では、GitHub Actions のレート制限は無効になっています。 は、パフォーマンスを損なうことなく使用量の一時的な急増に対処できるため、このレート制限は、持続的な高負荷からの保護を目的としたものです。 パフォーマンスの問題が発生しない限り、レート制限は無効のままにすることをお勧めします。 場合によっては、GitHub Support が GitHub Actions のレート制限を有効にするようお勧めすることがあります。

GitHub Actions のレート制限を有効または無効にする

  1. お使いの GitHub Enterprise Server インスタンス に SSH で接続します。 インスタンスが複数のノードで構成されている場合は (高可用性や geo レプリケーションが構成されている場合など)、プライマリ ノードに SSH 接続します。 クラスターを使用する場合は、任意のノードに SSH 接続できます。 HOSTNAME をインスタンスのホスト名、またはノードのホスト名または IP アドレスに置き換えます。 詳しくは、「管理シェル (SSH) にアクセスする」をご覧ください。

    Shell
    ssh -p 122 admin@HOSTNAME
    
  2. レート制限を有効にして構成するには、次の 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. 設定の実行が完了するのを待ってください。