お客様が当社が提供したツールを使用して製品を導入するときに問題が発生し、ホストの追加ステップで問題が発生し、導入チームが作業を続行できなくなったというフィードバックをプロジェクトから受け取りました。そのため、当社に依頼されました。ヘルプ。
環境情報: kylin10
アーキテクチャ: アーム
システム展開プロセス中、ホスト上でのバッチ操作に Ansible スクリプトを使用しました。最近、実行プロセスがスタックするという問題に遭遇しましたが、最初は ansible が実行中にブロックされているのではないかと疑っていました。これを確認するために、テストのためにフィールドにコマンドを送信しました。
リーリー案の定、単純な ansible コマンドが環境上で実行されて結果が返されるまでに 2 分以上かかりました。問題の原因はここにあり、一般的な方向性はわかっています。
Ansible は、実際の実行中も SSH リモート接続に依存しています。以前にも SSH 接続速度が遅いことに遭遇しました。予備的な推測では、SSH 接続速度が遅いため、実行の戻り速度が遅いのではないかと考えられます。
ssh パラメーターを確認し、/etc/ssh/sshd_config 構成を確認してください
リーリーLinux では、SSH の逆引き DNS 解決がデフォルトで有効になっていますが、これには時間がかかるため、無効にする必要があります。構成ファイルでは、UseDNS yes がコメント化されていますが、デフォルトのスイッチは yes
です。 リーリープロジェクトの 2 つの ssh パラメータ設定が上記と一致していることが判明し、ピア ホストへの ssh ログインは手動でテストされ、速度は非常に速かったです。
手がかりがありません。システム コールをトレースするには、Linux strace コマンドを使用することしかできません。
strace ログを確認すると、多数の選択待機があることがわかります。これは、操作を実行するときに長時間ブロックされる必要があります。
ansible を使用したデバッグ
リーリーコマンドの後に -vvv を追加すると、詳細な実行プロセスが表示されます
#########問題を解く#########それでは、Python のバージョンを確認してください。Python のデフォルトのバージョンは Python2 であることがわかりますが、システムには Python3 もあります。確認のために、ソフト リンクを Python3.7 に変更してみてください。
ansible コマンドを再度実行します
実行時間は1.3秒ですが、どうやらansibleとPythonのバージョンの互換性が原因のようです。
以上がansibleの実行速度が遅い問題を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。