Menerima maklum balas daripada projek bahawa pelanggan menghadapi kesukaran semasa menggunakan produk menggunakan alatan yang kami sediakan, dan menghadapi masalah dalam langkah penambahan hos, yang menyebabkan pasukan pelaksana tidak dapat meneruskan kerja, jadi mereka meminta bantuan kami.
Maklumat alam sekitar: kylin10
Seni bina: lengan
Semasa proses penggunaan sistem, kami menggunakan skrip ansible untuk operasi kelompok pada hos. Baru-baru ini, saya menghadapi masalah dengan proses pelaksanaan yang tersekat Pada mulanya disyaki bahawa ansible telah disekat semasa pelaksanaan. Untuk mengesahkan ini, saya telah menghantar arahan ke medan untuk ujian.
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
Sudah pasti, ia mengambil masa lebih daripada 2 minit untuk melaksanakan arahan mudah yang boleh dilakukan pada persekitaran sebelum mengembalikan hasilnya Punca masalah terletak di sini, dan kami mempunyai hala tuju umum.
Ansible masih bergantung pada sambungan jauh SSH semasa pelaksanaan sebenar Saya pernah mengalami kelajuan sambungan SSH yang perlahan sebelum ini.
Semak parameter ssh dan semak konfigurasi /etc/ssh/sshd_config
GSSAPIAuthentication no #关闭SERVER上的GSS认证
Di Linux, resolusi DNS terbalik SSH didayakan secara lalai. Ini memakan banyak masa, jadi ia perlu dimatikan. Dalam fail konfigurasi, walaupun UseDNS yes diulas, suis lalai ialah ya
UseDNS=no #关闭SERVER上DNS反向解析
Ternyata dua konfigurasi parameter ssh pada projek adalah konsisten dengan perkara di atas, dan ujian manual log masuk ssh ke hos rakan sebaya adalah sangat pantas
Saya tidak tahu, jadi saya hanya boleh menggunakan arahan strace Linux untuk mengesan panggilan sistem
Melihat log strace, kami mendapati terdapat sejumlah besar menunggu terpilih, yang harus disekat untuk masa yang lama apabila melakukan operasi tertentu.
Menyahpepijat dengan ansible
ansible all -i "192.168.2.84, -m shell -a 'date' --l become --become-method=sudo --become-user=root -u test -vvv
Tambah -vvv selepas arahan untuk melihat proses pelaksanaan terperinci
Daripada maklumat nyahpepijat, kita boleh melihat ralat "mux_client_read_packet: read header failed: Broken pipe". versi?
Saya menyemak maklumat dalam talian dan mendapati terdapat masalah keserasian antara ansible dan python.
Jadi saya menyemak versi python dan melihat bahawa versi lalai python ialah python2, tetapi terdapat juga python3 pada sistem Cuba ubah suai pautan lembut ke python3.7 untuk mengesahkan
Laksanakan perintah yang boleh dijawab semula
Masa pelaksanaan ialah 1.3s Nampaknya keserasian versi ansible dan python menyebabkan masalah ini.
Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan masalah kelajuan pelaksanaan lambat ansible. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!