のレート制限について
すべてのユーザーのインスタンスの可用性またはパフォーマンスに影響を与える可能性がある お使いの 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] には、各レート制限の時間間隔 (毎分もしくは毎時) の一覧が表示されます。
-
の管理アカウントから、任意のページの右上隅で をクリックします。
-
[サイト管理者] ページにまだ表示されていない場合は、左上隅の [サイト管理者] をクリックします。
-
[ サイト管理者] サイドバーで [Management Console] をクリックします。
-
[レート制限] で [HTTP API レート制限を有効にする] を選択します。
-
各APIについて認証済み及び非認証リクエストの制限を入力するか、事前に入力されているデフォルトの制限を承認してください。
-
[設定] サイドバーで [設定の保存] をクリックします。
Note
[Management Console] で設定を保存すると、システム サービスが再起動され、ユーザーにわかるダウンタイムが発生する可能性があります。
-
設定の実行が完了するのを待ってください。
セカンダリ レート制限の有効化
セカンダリ レート制限を設定すると、お使いの GitHub Enterprise Server インスタンス上のサービス全体のレベルを保護できます。
-
の管理アカウントから、任意のページの右上隅で をクリックします。
-
[サイト管理者] ページにまだ表示されていない場合は、左上隅の [サイト管理者] をクリックします。
-
[ サイト管理者] サイドバーで [Management Console] をクリックします。
-
[レート制限] で [セカンダリ レート制限を有効にする] を選択します。
-
総リクエストの制限、CPU制限、検索のためのCPU制限を入力するか、事前に入力されているデフォルトの制限を承認してください。
-
[設定] サイドバーで [設定の保存] をクリックします。
Note
[Management Console] で設定を保存すると、システム サービスが再起動され、ユーザーにわかるダウンタイムが発生する可能性があります。
-
設定の実行が完了するのを待ってください。
Git のレート制限を有効にする
GitHub のスタッフのメンバーが推奨している場合は、リポジトリ ネットワークごと、またはユーザー ID ごとに Git レート制限を適用できます。 Git レート制限は 1 分あたりの同時操作数で表現され、現在の CPU 負荷に適応します。
Warning
GitHub のスタッフのメンバーによって直接推奨されない限り、この設定は無効のままにすることをお勧めします。 Git 操作は、CPU と RAM の使用率の主要な要因になることはほとんどありません。 この機能を有効にすると、負荷の高い条件下で Git 操作が失敗する可能性が高くなりますが、これらの条件の根本的な原因については対処されません。
-
の管理アカウントから、任意のページの右上隅で をクリックします。
-
[サイト管理者] ページにまだ表示されていない場合は、左上隅の [サイト管理者] をクリックします。
-
[ サイト管理者] サイドバーで [Management Console] をクリックします。
-
[レート制限] で [Git レート制限の有効化] を選択します。
-
[リポジトリ ネットワークの制限] に、各リポジトリ ネットワークの制限を入力します。
-
[ユーザー ID の制限] に、各ユーザー ID の制限を入力します。
-
[設定] サイドバーで [設定の保存] をクリックします。
Note
[Management Console] で設定を保存すると、システム サービスが再起動され、ユーザーにわかるダウンタイムが発生する可能性があります。
-
設定の実行が完了するのを待ってください。
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 のレート制限を有効または無効にする
-
お使いの 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
-
設定の実行が完了するのを待ってください。