Skip to main content

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

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

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

GitHub Enterprise Server APIs のレート制限を有効化すると、個人あるいは認証されていないユーザーによるリソースの過剰な利用を回避できます。 詳細については、「REST API のリソース」を参照してください。

管理シェルの 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 をただちにロック解除するには、管理シェルから ghe-reactivate-admin-login コマンドを使用します。 詳細については、「コマンド ライン ユーティリティ」と「管理シェルへのアクセス (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 レート制限は 1 分あたりの同時操作数で表現され、現在の 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 について詳しくは、「Enterprises 用の GitHub Actions について」をご覧ください。

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

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

このパフォーマンスの低下を回避するには、GitHub Actions のレート制限を構成できます。 このレート制限は、1 分あたりのジョブ実行数で表されます。 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. your GitHub Enterprise Server instance に SSH で接続します。 インスタンスが複数のノードで構成されている場合は (高可用性や geo レプリケーションが構成されている場合など)、プライマリ ノードに SSH 接続します。 クラスターを使用する場合は、任意のノードに SSH 接続できます。 SSH 接続について詳しくは、「管理シェル (SSH) にアクセスする」をご覧ください。

    $ 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. 設定の実行が完了するのを待ってください。