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

PHPz
Freigeben: 2024-03-05 17:34:02
nach vorne
722 Leute haben es durchsucht

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 
Nach dem Login kopieren

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认证  
Nach dem Login kopieren

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反向解析 
Nach dem Login kopieren

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
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:mryunwei.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage