Informationen zu Ratenlimits für GitHub Enterprise Server
Um eine übermäßige Nutzung von Ihre GitHub Enterprise Server-Instance-Ressourcen zu verhindern, die sich auf die Verfügbarkeit oder Leistung der Instanz für alle Benutzer*innen auswirken könnte, kannst du Ratenlimits konfigurieren. Ratenlimits sind für die GitHub Enterprise Server APIs und GitHub Actions konfigurierbar.
Implementiere Ratenlimits sorgfältig, und kommuniziere beim Optimieren der Limits regelmäßig mit Benutzerinnen. Um die Arbeit von Benutzerinnen nicht zu unterbrechen, empfiehlt GitHub, mit großzügigen Ratenlimits zu beginnen und diese schrittweise an deine Umgebung anzupassen.
Du kannst auch Ratenlimits für Authentifizierungsversuche bei der Verwaltungskonsole konfigurieren. Weitere Informationen findest du unter Verwalten des Zugriffs auf die Verwaltungskonsole.
Aktivieren von Ratenbegrenzungen für die GitHub Enterprise Server APIs
Eine übermäßige Anzahl von Anforderungen an die GitHub Enterprise Server APIs kann sich auf die Verfügbarkeit und Leistung deiner Instanz auswirken. Weitere Informationen dazu, wie sich Ratenlimits für die API auf Benutzer*innen auswirken, findest du unter Ratenbegrenzungen für die REST-API.
Über das ghe-config
-Hilfsprogramm in der Verwaltungsshell kannst du eine Liste von Benutzern von API-Ratenbegrenzungen ausnehmen. Weitere Informationen findest du unter Befehlszeilenprogramme.
Note
In der Verwaltungskonsole wird der Zeitraum (pro Minute oder pro Stunde) für jede Ratenbegrenzung aufgelistet.
-
Klicke in einem Verwaltungskonto auf GitHub Enterprise Server und dann in der rechten oberen Ecke einer beliebigen Seite auf „“.
-
Wenn du dich nicht bereits auf der Seite „Websiteadministrator“ befindest, klicke in der oberen linken Ecke auf Websiteadministrator.
-
Wähle auf der Randleiste „ Websiteadministrator“ die Option Verwaltungskonsole aus.
-
Wähle unter „Ratenbegrenzung“ die Option HTTP-API-Ratenbegrenzung aktivieren aus.
-
Gib die Begrenzungen für authentifizierte und nicht authentifizierte Anforderungen für jede API ein, oder akzeptiere die vorab ausgefüllten Standardbegrenzungen.
-
Klicke auf der Randleiste unter „Einstellungen“ auf Einstellungen speichern.
Note
Durch das Speichern von Einstellungen in der Verwaltungskonsole werden Systemdienste neu gestartet, was zu einer für den Benutzer feststellbaren Downtime führen könnte.
-
Warten Sie auf den Abschluss der Konfigurationsausführung.
Aktivieren sekundärer Ratenbegrenzungen
Durch das Festlegen von sekundären Ratenbegrenzungen wird das allgemeine Dienstniveau von Ihre GitHub Enterprise Server-Instance geschützt.
-
Klicke in einem Verwaltungskonto auf GitHub Enterprise Server und dann in der rechten oberen Ecke einer beliebigen Seite auf „“.
-
Wenn du dich nicht bereits auf der Seite „Websiteadministrator“ befindest, klicke in der oberen linken Ecke auf Websiteadministrator.
-
Wähle auf der Randleiste „ Websiteadministrator“ die Option Verwaltungskonsole aus.
-
Wähle unter „Ratenbegrenzung“ die Option Sekundäre Ratenbegrenzung aktivieren aus.
-
Gib die Begrenzungen für „Total Requests“ (Gesamtanforderungen), „CPU Limit“ (CPU-Begrenzung) und „CPU Limit for Searching“ (CPU-Begrenzung für Suchvorgänge) ein, oder akzeptiere die vorab ausgefüllten Standardbegrenzungen.
-
Klicke auf der Randleiste unter „Einstellungen“ auf Einstellungen speichern.
Note
Durch das Speichern von Einstellungen in der Verwaltungskonsole werden Systemdienste neu gestartet, was zu einer für den Benutzer feststellbaren Downtime führen könnte.
-
Warten Sie auf den Abschluss der Konfigurationsausführung.
Aktivieren von Ratenbegrenzungen für Git
Wenn ein Mitarbeiter von GitHub dies empfohlen hat, kannst du Git-Ratenbegrenzungen pro Repositorynetzwerk oder pro Benutzer-ID anwenden. Git-Begrenzungen werden in gleichzeitigen Vorgängen pro Minute ausgedrückt und sind basierend auf der aktuellen CPU-Auslastung adaptiv.
Warning
Deaktiviere diese Einstellung, es sei denn, das Verwenden wird von einem GitHub-Mitarbeiter empfohlen. Git-Operationen sind selten die Hauptursache für eine CPU- und RAM-Auslastung. Die Aktivierung dieser Funktion kann die Wahrscheinlichkeit erhöhen, dass Git-Vorgänge unter hoher Last fehlschlagen, aber sie ändert nichts an der Ursache für diese Bedingungen.
-
Klicke in einem Verwaltungskonto auf GitHub Enterprise Server und dann in der rechten oberen Ecke einer beliebigen Seite auf „“.
-
Wenn du dich nicht bereits auf der Seite „Websiteadministrator“ befindest, klicke in der oberen linken Ecke auf Websiteadministrator.
-
Wähle auf der Randleiste „ Websiteadministrator“ die Option Verwaltungskonsole aus.
-
Wähle unter „Ratenbegrenzung“ die Option Git-Begrenzung aktivieren aus.
-
Gib unter „Grenzwert für Repositorynetzwerk“ einen Grenzwert für jedes Repositorynetzwerk ein.
-
Gib unter „Grenzwert für Benutzer-ID“ einen Grenzwert für jede Benutzer-ID ein.
-
Klicke auf der Randleiste unter „Einstellungen“ auf Einstellungen speichern.
Note
Durch das Speichern von Einstellungen in der Verwaltungskonsole werden Systemdienste neu gestartet, was zu einer für den Benutzer feststellbaren Downtime führen könnte.
-
Warten Sie auf den Abschluss der Konfigurationsausführung.
Konfigurieren von Ratenbegrenzungen für GitHub Actions
Du kannst eine Ratenbegrenzung auf GitHub Actions-Workflowausführungen anwenden. Weitere Informationen zu GitHub Actions findest du unter Informationen zu GitHub Actions für Unternehmen.
Informationen zu GitHub Actions
Deine GitHub Enterprise Server-Instanz weist jeden GitHub Actions-Workflowauftrag einem Runner zu. Wenn die Instanz einen Auftrag nicht sofort einem verfügbaren Runner zuweisen kann, wartet der Auftrag in einer Warteschlange, bis ein Runner verfügbar ist. Wenn GitHub Actions dauerhaft stark ausgelastet ist, kann es zu einem Rückstau in der Warteschlange kommen, und die Leistung von Ihre GitHub Enterprise Server-Instance wird möglicherweise beeinträchtigt.
Um diese Leistungsbeeinträchtigung zu vermeiden, kannst du eine Ratenbegrenzung für GitHub Actions konfigurieren. Diese Ratenbegrenzung wird in Auftragsausführungen pro Minute ausgedrückt. Die Ratenbegrenzung wird von GitHub Enterprise Server für die Summe aller Auftragsausführungen in der Instanz berechnet und angewendet. Wenn die Ratenbegrenzung von Ausführungen überschritten wird, schlagen weitere Ausführungen fehl, statt in die Warteschlange eingereiht zu werden. Der folgende Fehler wird in den Anmerkungen der Ausführung angezeigt.
Die Ratenbegrenzung für Workflowausführungsanforderungen wurde überschritten. Bitte warte, bevor du die Ausführung erneut versuchst.
Eine geeignete Ratenbegrenzung schützt Ihre GitHub Enterprise Server-Instance vor einer übermäßigen Nutzung von GitHub Actions, ohne den laufenden Betrieb zu beeinträchtigen. Der genaue Schwellenwert hängt von den verfügbaren Ressourcen deiner Instanz und dem allgemeinen Auslastungsprofil ab. Weitere Informationen zu den Hardwareanforderungen für GitHub Actions findest du unter Erste Schritte mit GitHub Actions für GitHub Enterprise Server.
Die Ratenbegrenzung für GitHub Actions ist standardmäßig deaktiviert. Da GitHub Enterprise Server temporäre Auslastungsspitzen ohne Leistungsbeeinträchtigung verarbeiten kann, soll diese Ratenbegrenzung Schutz vor dauerhafter hoher Last bieten. Es wird empfohlen, die Ratenbegrenzung deaktiviert zu lassen, es sei denn, es treten Leistungsprobleme auf. In einigen Fällen empfiehlt der GitHub-Support, eine Ratenbegrenzung für GitHub Actions zu aktivieren.
Aktivieren oder Deaktivieren von Ratenbegrenzungen für GitHub Actions
-
Melde dich über SSH bei Ihre GitHub Enterprise Server-Instance an. Wenn deine Instanz mehrere Knoten umfasst, wenn z. B. Hochverfügbarkeit oder Georeplikation konfiguriert ist, wird SSH im primären Knoten konfiguriert. Wenn du einen Cluster verwendest, kannst du SSH in einen beliebigen Knoten einfügen. Ersetzen Sie HOSTNAME durch den Hostnamen Ihrer Instanz bzw. durch den Hostnamen oder die IP-Adresse eines Knotens. Weitere Informationen findest du unter Auf die Verwaltungsshell (SSH) zugreifen.
Shell ssh -p 122 admin@HOSTNAME
ssh -p 122 admin@HOSTNAME
-
Zum Aktivieren und Konfigurieren der Ratenbegrenzung führe die folgenden beiden Befehle aus, wobei du RUNS-PER-MINUTE durch den Wert deiner Wahl ersetzt.
ghe-config actions-rate-limiting.enabled true ghe-config actions-rate-limiting.queue-runs-per-minute RUNS-PER-MINUTE
-
Führe den folgenden Befehl aus, um die Ratenbegrenzung nach der Aktivierung zu deaktivieren.
ghe-config actions-rate-limiting.enabled false
-
Führe den folgenden Befehl aus, um die Konfiguration anzuwenden.
ghe-config-apply
-
Warte auf den Abschluss der Konfigurationsausführung.