Informationen zu Ratengrenzwerten für GitHub Enterprise Server
Ratenbegrenzungen helfen, eine übermäßige Ressourcennutzung auf Ihre GitHub Enterprise Server-Instance zu verhindern, die die Verfügbarkeit oder Leistung für alle Benutzer beeinträchtigen könnte. Sie können Ratenbegrenzungen für GitHub Enterprise Server APIs und GitHub Actions konfigurieren.
Implementieren Sie Häufigkeitsbeschränkungen sorgfältig und kommunizieren Sie mit Ihren Benutzern, während Sie sie optimieren. Beginnen Sie mit zulässigen Ratenlimits, und passen Sie sie schrittweise an Ihre Umgebung an.
Sie können auch Ratenbegrenzungen für Authentifizierungsversuche bei der Verwaltungskonsole konfigurieren. Weitere Informationen finden Sie unter Verwalten des Zugriffs auf die Verwaltungskonsole.
Aktivieren von Ratengrenzwerten für die GitHub Enterprise Server APIs
Zu viele Anforderungen an die GitHub Enterprise Server APIs Instanz können ihre Instanz verlangsamen oder nicht verfügbar machen. Weitere Informationen dazu, wie SICH API-Ratengrenzwerte auf Ihre Benutzer auswirken, finden Sie unter Ratenbegrenzungen für die REST-API.
Sie können bestimmte Benutzer von API-Ratenbeschränkungen ausnehmen, indem Sie das ghe-config Hilfsprogramm in der Verwaltungsshell verwenden. Weitere Informationen finden Sie unter Befehlszeilenwerkzeuge.
Hinweis
Die Verwaltungskonsole führt für jede Ratenbegrenzung den Zeitraum (pro Minute oder pro Stunde) auf.
-
Klicke in einem Verwaltungskonto für GitHub Enterprise Server 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.
-
Klicke in der Randleiste „ Site admin“ auf Verwaltungskonsole.
-
Wähle unter „Ratenbegrenzung“ die Option HTTP-API-Ratenbegrenzung aktivieren aus.
-
Geben Sie Grenzwerte für authentifizierte und nicht authentifizierte Anforderungen für jede API ein, oder akzeptieren Sie die vorgefüllten Standardgrenzwerte.
-
Klicke auf der Randleiste unter „Einstellungen“ auf Einstellungen speichern.
Hinweis
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 Geschwindigkeitsbegrenzungen
Sekundäre Ratenlimits helfen, Ihre GitHub Enterprise Server-Instance für alle Benutzer stabil zu halten.
-
Klicke in einem Verwaltungskonto für GitHub Enterprise Server 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.
-
Klicke in der Randleiste „ Site admin“ auf Verwaltungskonsole.
-
Wähle unter „Ratenbegrenzung“ die Option Sekundäre Ratenbegrenzung aktivieren aus.
-
Geben Sie Grenzwerte für Gesamtanforderungen, CPU-Grenzwert und CPU-Grenzwert für die Suche ein, oder akzeptieren Sie die vorgefüllten Standardgrenzwerte.
-
Klicke auf der Randleiste unter „Einstellungen“ auf Einstellungen speichern.
Hinweis
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 GitHubes empfohlen hat, können Sie Git-Rate-Grenzwerte pro Repositorynetzwerk oder pro Benutzer-ID anwenden. Git-Rate-Grenzwerte werden in gleichzeitigen Vorgängen pro Minute gemessen und an die aktuelle CPU-Auslastung angepasst.
Warnung
Deaktivieren Sie diese Einstellung nicht, es sei denn, dies wurde Ihnen direkt von den Mitarbeitern von GitHub empfohlen. Git-Operationen sind selten die Hauptursache für eine CPU- und RAM-Auslastung. Wenn Sie dieses Feature aktivieren, ist es wahrscheinlicher, dass Git-Vorgänge unter hoher Auslastung fehlschlagen, aber die zugrunde liegende Ursache wird nicht behoben.
-
Klicke in einem Verwaltungskonto für GitHub Enterprise Server 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.
-
Klicke in der Randleiste „ Site admin“ auf Verwaltungskonsole.
-
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.
Hinweis
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
Sie können eine Ratenbegrenzung auf GitHub Actions-Workflowausführungen anwenden. Weitere Informationen zu GitHub Actions findest du unter Über GitHub Actions für Unternehmen.
Informationen zu Ratengrenzwerten für GitHub Actions
Ihre GitHub Enterprise Server Instanz weist jedem GitHub Actions Workflow-Job einen Runner zu. Wenn Ihre Instanz einem verfügbaren Runner nicht sofort einen Auftrag zuweisen kann, wartet der Auftrag in einer Warteschlange. Wenn GitHub Actions dauerhaft hoher Last ausgesetzt ist, kann sich die Warteschlange aufstauen, und die Leistung von Ihre GitHub Enterprise Server-Instance kann beeinträchtigt werden.
Um dies zu vermeiden, können Sie für GitHub Actions eine Ratenbegrenzung konfigurieren. Dieser Ratengrenzwert wird in Auftragsausführungen pro Minute gemessen. GitHub Enterprise Server wendet den Ratengrenzwert auf alle Auftragsausführungen auf der Instanz an. Wenn die Ausführungen den Ratengrenzwert überschreiten, 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 gute Ratenbegrenzung schützt Ihre GitHub Enterprise Server-Instance vor ungewöhnlichen Spitzen bei der Nutzung von GitHub Actions, ohne den täglichen Betrieb zu beeinträchtigen. Der richtige Schwellenwert hängt von den verfügbaren Ressourcen und der typischen Arbeitsauslastung Ihrer Instanz ab. Weitere Informationen zu den Hardwareanforderungen für GitHub Actions finden Sie unter Erste Schritte mit GitHub Actions für GitHub Enterprise Server.
Standardmäßig ist der Satzgrenzwert GitHub Actions deaktiviert. GitHub Enterprise Server kann temporäre Nutzungsspitzen ohne Probleme verarbeiten, sodass dieser Satzgrenzwert vor anhaltender hoher Last schützt. Lassen Sie es deaktiviert, es sei denn, es treten Leistungsprobleme auf. In einigen Fällen kann GitHub-Support empfehlen, eine Ratenbegrenzung für GitHub Actions zu aktivieren.
Aktivieren oder Deaktivieren von Ratenlimits 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 finden Sie 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 -
Um den Satzgrenzwert zu deaktivieren, führen Sie den folgenden Befehl aus.
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.
Steuern der Geschwindigkeit für den Liveupdatedienst
Wenn die Anzahl der AJAX-Anforderungen an Ihre GitHub Enterprise Server Instanz Probleme verursacht, müssen Sie möglicherweise den Satzgrenzwert für den WebSockets-Controller anpassen, der von diesen Liveupdates verwendet wird. Ausführliche Informationen zum Anzeigen von Alive-Anforderungen finden Sie unter Informationen zu den Monitordashboards.
Bei aktivierten Primärratengrenzwerten beträgt der Standardgrenzwert 100 Anforderungen pro Minute pro IP-Adresse. Verwenden Sie das Hilfsprogramm "ghe-config" in der administrativen Shell, um die Anzahl der Anfragen festzulegen, die pro Minute und pro IP-Adresse zulässig sind, oder um dieses Ratenlimit zu deaktivieren. Durch Festlegen des Grenzwerts auf einen nicht positiven ganzzahligen Wert (z. B 0. , -1, disabled) wird die Ratebegrenzung für den WebSockets-Controller deaktiviert.
Die app.github.web-sockets-rate-limit Konfigurationseinstellung wurde in 3.17.1 eingeführt.
Nachdem Sie diese Einstellungen geändert haben, führen Sie ghe-config-apply aus, um sie anzuwenden.