GitHub Enterprise Server のレート制限について
すべてのユーザーのインスタンスの可用性またはパフォーマンスに影響を与える可能性がある お使いの 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] には、各レート制限の時間間隔 (毎分もしくは毎時) の一覧が表示されます。
-
GitHub Enterprise Server の管理アカウントから、任意のページの右上隅で をクリックします。
-
[サイト管理者] ページにまだ表示されていない場合は、左上隅の [サイト管理者] をクリックします。
-
[ サイト管理者] サイドバーで [Management Console] をクリックします。
-
[レート制限] で [HTTP API レート制限を有効にする] を選択します。
-
各APIについて認証済み及び非認証リクエストの制限を入力するか、事前に入力されているデフォルトの制限を承認してください。
-
[設定] サイドバーで [設定の保存] をクリックします。
注: [Management Console] に設定を保存すると、システム サービスが再起動され、ユーザーに表示されるダウンタイムが発生する可能性があります。
-
設定の実行が完了するのを待ってください。
セカンダリ レート制限の有効化
セカンダリ レート制限を設定すると、お使いの GitHub Enterprise Server インスタンス上のサービス全体のレベルを保護できます。
-
GitHub Enterprise Server の管理アカウントから、任意のページの右上隅で をクリックします。
-
[サイト管理者] ページにまだ表示されていない場合は、左上隅の [サイト管理者] をクリックします。
-
[ サイト管理者] サイドバーで [Management Console] をクリックします。
-
[レート制限] で [セカンダリ レート制限を有効にする] を選択します。
-
総リクエストの制限、CPU制限、検索のためのCPU制限を入力するか、事前に入力されているデフォルトの制限を承認してください。
-
[設定] サイドバーで [設定の保存] をクリックします。
注: [Management Console] に設定を保存すると、システム サービスが再起動され、ユーザーに表示されるダウンタイムが発生する可能性があります。
-
設定の実行が完了するのを待ってください。
Git のレート制限を有効にする
GitHub のスタッフのメンバーが推奨している場合は、リポジトリ ネットワークごと、またはユーザー ID ごとに Git レート制限を適用できます。 Git レート制限は 1 分あたりの同時操作数で表現され、現在の CPU 負荷に適応します。
Warning
GitHub のスタッフのメンバーによって直接推奨されない限り、この設定は無効のままにすることをお勧めします。 Git 操作は、CPU と RAM の使用率の主要な要因になることはほとんどありません。 この機能を有効にすると、負荷の高い条件下で Git 操作が失敗する可能性が高くなりますが、これらの条件の根本的な原因については対処されません。
-
GitHub Enterprise Server の管理アカウントから、任意のページの右上隅で をクリックします。
-
[サイト管理者] ページにまだ表示されていない場合は、左上隅の [サイト管理者] をクリックします。
-
[ サイト管理者] サイドバーで [Management Console] をクリックします。
-
[レート制限] で [Git レート制限の有効化] を選択します。
-
[リポジトリ ネットワークの制限] に、各リポジトリ ネットワークの制限を入力します。
-
[ユーザー ID の制限] に、各ユーザー ID の制限を入力します。
-
[設定] サイドバーで [設定の保存] をクリックします。
注: [Management Console] に設定を保存すると、システム サービスが再起動され、ユーザーに表示されるダウンタイムが発生する可能性があります。
-
設定の実行が完了するのを待ってください。
GitHub Actions のレート制限を構成する
GitHub Actions のワークフロー実行にレート制限を適用できます。 GitHub Actions の詳細については、「エンタープライズの GitHub Actions について」を参照してください。
GitHub Actions のレート制限について
GitHub Enterprise Server のインスタンスによって、GitHub Actions の各ワークフロー ジョブがランナーに割り当てられます。 インスタンスが使用可能なランナーにジョブをすぐに割り当てることができない場合、ジョブはランナーが使用可能になるまでキューで待機します。 GitHub Actions の負荷が常に高い場合、キューが滞る可能性があり、お使いの GitHub Enterprise Server インスタンスのパフォーマンスが低下することがあります。
このパフォーマンスの低下を回避するには、GitHub Actions のレート制限を構成できます。 このレート制限は、1 分あたりのジョブ実行数で表されます。 GitHub Enterprise Server は、インスタンス上のすべてのジョブ実行数の合計に対するレート制限を計算して適用します。 レート制限を超えた分の実行は、キューに入れられずに失敗します。 実行のアノテーションに次のエラーが表示されます。
ワークフロー実行要求のレート制限を超えました。 しばらく待ってからもう一度実行してみてください。
レート制限を適切に設定すると、お使いの GitHub Enterprise Server インスタンスは、日常の操作を妨げることなく、GitHub Actions の異常な使用から保護されます。 正確なしきい値は、インスタンスで使用できるリソースと、全体的な負荷のプロファイルによって決まります。 GitHub Actions のハードウェア要件について詳しくは、「GitHub Enterprise Server の GitHub Actions を使い始める」をご覧ください。
既定では、GitHub Actions のレート制限は無効になっています。 GitHub Enterprise Server は、パフォーマンスを損なうことなく使用量の一時的な急増に対処できるため、このレート制限は、持続的な高負荷からの保護を目的としたものです。 パフォーマンスの問題が発生しない限り、レート制限は無効のままにすることをお勧めします。 場合によっては、GitHub Support が GitHub Actions のレート制限を有効にするようお勧めすることがあります。
GitHub Actions のレート制限を有効または無効にする
-
お使いの GitHub Enterprise Server インスタンス に SSH で接続します。 インスタンスが複数のノードで構成されている場合は (高可用性や geo レプリケーションが構成されている場合など)、プライマリ ノードに SSH 接続します。 クラスターを使用する場合は、任意のノードに SSH 接続できます。 HOSTNAME をインスタンスのホスト名、またはノードのホスト名または IP アドレスに置き換えます。 詳しくは、「管理シェル (SSH) にアクセスする」を参照してください。
Shell ssh -p 122 admin@HOSTNAME
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
-
レート制限を有効にした後で無効にするには、次のコマンドを実行します。
ghe-config actions-rate-limiting.enabled false
-
構成を適用するには、次のコマンドを実行します。
ghe-config-apply
-
設定の実行が完了するのを待ってください。