Heim  >  Artikel  >  Computer-Tutorials  >  So lösen Sie das Problem der langsamen Ausführungsgeschwindigkeit von Ansible

So lösen Sie das Problem der langsamen Ausführungsgeschwindigkeit von Ansible

PHPz
PHPznach vorne
2024-03-05 17:34:02682Durchsuche

Ich habe vom Projekt Feedback erhalten, dass der Kunde bei der Bereitstellung des Produkts mit den von uns bereitgestellten Tools auf Schwierigkeiten gestoßen ist und beim Host-Hinzufügen auf Probleme gestoßen ist, die das Implementierungsteam daran gehindert haben, die Arbeit weiter voranzutreiben, und haben uns daher um Hilfe gebeten.

Umweltinformationen: kylin10

Architektur: Arm

So lösen Sie das Problem der langsamen Ausführungsgeschwindigkeit von Ansible

Erste Anzeichen

Während des Systembereitstellungsprozesses haben wir Ansible-Skripte für Batch-Vorgänge auf Hosts verwendet. Kürzlich bin ich auf ein Problem gestoßen, bei dem der Ausführungsprozess hängengeblieben ist. Zunächst wurde vermutet, dass Ansible während der Ausführung blockiert wurde. Um dies zu überprüfen, habe ich einen Befehl zum Testen an das Feld gesendet.

localhost$ date
2024年02月19日星期 17:30:41 CST 
localhost$ ansible all -i "192.168.2.84, -m shell -a 'date' --l become --become-method=sudo --become-user=root -u test
192.168.2.84 CHANGED rc=0 >> 
2024年02月19日星期 17:33:34 CST 

Natürlich hat es mehr als 2 Minuten gedauert, einen einfachen Ansible-Befehl in der Umgebung auszuführen, bevor das Ergebnis zurückgegeben wurde. Die Ursache des Problems liegt hier und wir haben eine allgemeine Richtung.

Ansible ist während der tatsächlichen Ausführung immer noch auf eine SSH-Remote-Verbindung angewiesen. Es wird zunächst spekuliert, dass die Ausführungsrückgabegeschwindigkeit aufgrund der langsamen SSH-Verbindungsgeschwindigkeit langsam sein könnte.

Überprüfen Sie die SSH-Parameter und die /etc/ssh/sshd_config-Konfiguration

GSSAPIAuthentication no #关闭SERVER上的GSS认证  

Unter Linux ist die umgekehrte DNS-Auflösung von SSH standardmäßig aktiviert. Dies nimmt viel Zeit in Anspruch und muss daher deaktiviert werden. In der Konfigurationsdatei ist UseDNS zwar mit „Ja“ kommentiert, der Standardschalter ist jedoch „Ja“

UseDNS=no  #关闭SERVER上DNS反向解析 

Es stellt sich heraus, dass die beiden SSH-Parameterkonfigurationen im Projekt mit den oben genannten übereinstimmen und der manuelle Test der SSH-Anmeldung beim Peer-Host sehr schnell ist

Problemanalyse

Ich habe keine Ahnung, daher kann ich nur den Linux-Befehl strace verwenden, um Systemaufrufe zu verfolgen

So lösen Sie das Problem der langsamen Ausführungsgeschwindigkeit von Ansible

Beim Blick auf das Strace-Protokoll haben wir festgestellt, dass es eine große Anzahl ausgewählter Wartezeiten gibt, die bei der Ausführung eines bestimmten Vorgangs für eine lange Zeit blockiert werden sollten.

Debuggen mit Ansible

ansible all -i "192.168.2.84, -m shell -a 'date' --l become --become-method=sudo --become-user=root -u test -vvv

Fügen Sie -vvv nach dem Befehl hinzu, um den detaillierten Ausführungsprozess anzuzeigen

So lösen Sie das Problem der langsamen Ausführungsgeschwindigkeit von Ansible

Lösen Sie das Problem

Aus den Debug-Informationen können wir den Fehler „mux_client_read_packet: Header lesen fehlgeschlagen: Broken Pipe“ erkennen. An der Stelle, an der das Skript ausgeführt wird, können wir sehen, dass Ansible mit Python zusammenhängt Ausführung?

Ich habe die Informationen online überprüft und festgestellt, dass es Kompatibilitätsprobleme zwischen Ansible und Python gibt.

So lösen Sie das Problem der langsamen Ausführungsgeschwindigkeit von Ansible

Ich habe also die Python-Version überprüft. Ich kann sehen, dass die Standardversion von Python Python2 ist, aber es gibt auch Python3 auf dem System. Versuchen Sie, den Softlink zur Überprüfung auf Python3.7 zu ändern

So lösen Sie das Problem der langsamen Ausführungsgeschwindigkeit von Ansible

Führen Sie den Ansible-Befehl erneut aus

So lösen Sie das Problem der langsamen Ausführungsgeschwindigkeit von Ansible

Die Ausführungszeit beträgt 1,3 Sekunden. Es scheint, dass die Kompatibilität von Ansible- und Python-Versionen dieses Problem verursacht hat.

Das obige ist der detaillierte Inhalt vonSo lösen Sie das Problem der langsamen Ausführungsgeschwindigkeit von Ansible. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:mryunwei.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen