ホームページ >コンピューターのチュートリアル >コンピュータ知識 >ansibleの実行速度が遅い問題を解決する方法

ansibleの実行速度が遅い問題を解決する方法

PHPz
PHPz転載
2024-03-05 17:34:02746ブラウズ

お客様が当社が提供したツールを使用して製品を導入するときに問題が発生し、ホストの追加ステップで問題が発生し、導入チームが作業を続行できなくなったというフィードバックをプロジェクトから受け取りました。そのため、当社に依頼されました。ヘルプ。

環境情報: kylin10

アーキテクチャ: アーム

ansibleの実行速度が遅い問題を解決する方法

最初の兆候

システム展開プロセス中、ホスト上でのバッチ操作に Ansible スクリプトを使用しました。最近、実行プロセスがスタックするという問題に遭遇しましたが、最初は ansible が実行中にブロックされているのではないかと疑っていました。これを確認するために、テストのためにフィールドにコマンドを送信しました。

リーリー

案の定、単純な ansible コマンドが環境上で実行されて結果が返されるまでに 2 分以上かかりました。問題の原因はここにあり、一般的な方向性はわかっています。

Ansible は、実際の実行中も SSH リモート接続に依存しています。以前にも SSH 接続速度が遅いことに遭遇しました。予備的な推測では、SSH 接続速度が遅いため、実行の戻り速度が遅いのではないかと考えられます。

ssh パラメーターを確認し、/etc/ssh/sshd_config 構成を確認してください

リーリー

Linux では、SSH の逆引き DNS 解決がデフォルトで有効になっていますが、これには時間がかかるため、無効にする必要があります。構成ファイルでは、UseDNS yes がコメント化されていますが、デフォルトのスイッチは yes

です。 リーリー

プロジェクトの 2 つの ssh パラメータ設定が上記と一致していることが判明し、ピア ホストへの ssh ログインは手動でテストされ、速度は非常に速かったです。

問題分析

手がかりがありません。システム コールをトレースするには、Linux strace コマンドを使用することしかできません。

ansibleの実行速度が遅い問題を解決する方法

strace ログを確認すると、多数の選択待機があることがわかります。これは、操作を実行するときに長時間ブロックされる必要があります。

ansible を使用したデバッグ

リーリー

コマンドの後に -vvv を追加すると、詳細な実行プロセスが表示されます

ansibleの実行速度が遅い問題を解決する方法

#########問題を解く#########

デバッグ情報から、「mux_client_read_packet: read header failed: Broken Pipe」というエラーが確認できます。スクリプトを実行すると、Python 関連のコマンドが実行されていることがわかります。Ansible は Python に依存しています。 Pythonのバージョンは? インターネット上の情報を確認すると、ansible と Python の間に互換性の問題があるとのことです。

それでは、Python のバージョンを確認してください。Python のデフォルトのバージョンは Python2 であることがわかりますが、システムには Python3 もあります。確認のために、ソフト リンクを Python3.7 に変更してみてください。

ansibleの実行速度が遅い問題を解決する方法

ansible コマンドを再度実行します

ansibleの実行速度が遅い問題を解決する方法

実行時間は1.3秒ですが、どうやらansibleとPythonのバージョンの互換性が原因のようです。

以上がansibleの実行速度が遅い問題を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はmryunwei.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。