Informationen zum Workloadausgleich für einen GitHub Enterprise Server-Cluster
Eine GitHub Enterprise Server-Instanz in einer Clusterkonfiguration weist jede Aufgabe einem Knoten entsprechend der Rolle des Knotens zu. Diese Zuweisung wird als Zuteilung bezeichnet.
Wenn ein Clusterknoten aufgrund eines Hardware- oder Softwarefehlers von anderen Knoten nicht erreichbar ist, erstellt deine Instanz eine neue Zuteilung, um Aufträge vom fehlerhaften Knoten an einen anderen Knoten zu verteilen, der die Workload verarbeiten kann. In einigen Situationen erfolgt diese Verteilung nicht automatisch, und ein einzelner Knoten kann mehr Aufträge als erwartet ausführen.
Du kannst Zuteilungen mithilfe des ghe-cluster-balance
-Hilfsprogramms verwalten, das den Status vorhandener Zuteilungen anzeigen oder deine Instanz zum Ausgleich von Zuteilungen zwingen kann. Beispielsweise sollten Sie die Zuteilungen ausgleichen, nachdem Sie dem Cluster einen neuen Knoten hinzugefügt haben. Optional können Sie einen Standardausgleich planen.
Sie köönnen die folgenden Befehle über einen beliebigen Knoten in Ihrem Cluster ausführen, indem Sie die Verwaltungsshell verwenden. Weitere Informationen findest du unter Zugreifen auf die Verwaltungsshell (SSH).
Überprüfen der Verteilung von Clusteraufträgen
In einigen Fällen, z. B. bei Hardwarefehlern, migriert die zugrunde liegende Software, die Zuteilungen verwaltet, Aufgaben vom fehlerhaften Knoten zu einem fehlerfreien Knoten. Wenn der fehlerhafte Knoten wiederhergestellt wird, bleibt die Aufgabe möglicherweise dem wiederhergestellten Knoten zugewiesen, was zu einer ungleichmäßigen Auslastung führen kann. Das Risiko eines Auftragsfehlers kann sich erhöhen, wenn Zuteilungen nicht ausgeglichen sind und zusätzliche Knoten fehlschlagen. Du kannst die Verteilung der Zuteilungen mithilfe des ghe-cluster-balance status
-Hilfsprogramms überprüfen.
-
Führe zum Anzeigen einer Liste der Zuteilungen den folgenden Befehl aus. Das Hilfsprogramm zeigt fehlerfreie Zuteilungen in grün an. Wenn Aufträge nicht ordnungsgemäß verteilt sind, zeigt das Hilfsprogramm die Anzahl der Zuteilungen in rot an.
Shell ghe-cluster-balance status
ghe-cluster-balance status
-
Wenn ein Auftrag nicht ordnungsgemäß verteilt ist, überprüfen Sie die Zuteilungen, indem Sie den folgenden Befehl ausführen. Ersetze „JOB“ durch einen einzelnen Auftrag oder eine durch Kommas getrennte Liste von Aufträgen.
Shell ghe-cluster-balance status -j JOB
ghe-cluster-balance status -j JOB
Um beispielsweise den Status der Zuteilungen für den HTTP-Server und den Autorisierungsdienst Ihrer Instanz anzuzeigen, können Sie
ghe-cluster-balance status -j github-unicorn,authzd
ausführen.
Erneutes Ausgleichen der Zuteilungen
Nachdem Sie ermittelt haben, welche Aufträge nicht ausgeglichen auf Ihre Clusterknoten verteilt sind, können Sie Zuteilungen mithilfe des ghe-cluster-balance rebalance
-Hilfsprogramms erneut ausgleichen. Das Hilfsprogramm überprüft die Verteilung vorhandener Aufträge. Wenn Aufträge nicht ausgeglichen verteilt sind, zeigt das Hilfsprogramm die Aufträge an und fordert dich auf, fortzufahren. Wenn Sie fortfahren, erstellt das Hilfsprogramm neue Zuteilungen, um die Aufträge erneut zu verteilen.
-
Führe den folgenden Befehl aus, um einen Probelauf durchzuführen und das Ergebnis des erneuten Ausgleichs anzuzeigen, ohne Änderungen vorzunehmen. Ersetze „JOB“ durch einen einzelnen Auftrag oder eine durch Kommas getrennte Liste von Aufträgen.
Shell ghe-cluster-balance rebalance --dry-run -j JOB
ghe-cluster-balance rebalance --dry-run -j JOB
Sie können beispielsweise einen Probelauf des erneuten Ausgleichens von Aufträgen für den HTTP-Server und den Autorisierungsdienst der Instanz durchführen, indem Sie
ghe-cluster-balance rebalance --dry-run -j github-unicorn,authzd
ausführen. -
Führe den folgenden Befehl aus, um einen erneuten Ausgleich vorzunehmen. Ersetze „JOB“ durch einen einzelnen Auftrag oder eine durch Kommas getrennte Liste von Aufträgen.
Shell ghe-cluster-balance rebalance -j JOB
ghe-cluster-balance rebalance -j JOB
Planen des Neuausgleichs der Zuteilung
Sie können das erneute Ausgleichen von Aufträgen in Ihrem Cluster planen, indem Sie Konfigurationswerte für Ihre GitHub Enterprise Server-Instance festlegen und anwenden.
Note
Derzeit kannst du die Neuzuordnung von Aufträgen nur für den HTTP-Server (github-unicorn
) planen.
-
Führe den folgenden Befehl aus, um den automatischen, stündlichen Ausgleich von Aufträgen zu konfigurieren.
Shell ghe-config app.cluster-rebalance.enabled true
ghe-config app.cluster-rebalance.enabled true
-
Optional können Sie den Standardzeitplan außer Kraft setzen, indem Sie einen [Systemd.time Ausdruck} definieren. Führen Sie beispielsweise den folgenden Befehl aus, um Aufträge täglich auszugleichen.
Shell ghe-config app.cluster-rebalance.schedule 'daily'
ghe-config app.cluster-rebalance.schedule 'daily'
-
Führe den folgenden Befehl aus, um die Konfiguration anzuwenden.
Note
Während einer Konfigurationsausführung können die Dienste auf Ihre GitHub Enterprise Server-Instance neu gestartet werden, was zu kurzen Ausfallzeiten für Benutzer führen kann.
Shell ghe-config-apply
ghe-config-apply
-
Warten Sie auf den Abschluss der Konfigurationsausführung.