Eski bir cfengine2 kurulumunu değiştirmek için Ansible'a bakmaya başlıyoruz. Ben basit bir oyun kitabı var:
- bir sudoers dosyasını kopyalar
- şablonlanmış bir resolv.conf kopyalar (group_vars ve host_vars verileriyle beslenir)
- birkaç hizmetin çalıştığını kontrol eder
- yerel kullanıcının varlığını kontrol eder
Oynatma kitabının 97 makineye karşı çalışması için 4 dakikadan fazla duvar saati süresi (hepsi 1gig veya 10gig ağ üzerinden, 1ms alt LAN gecikmesi ile bağlı) ve 2 çekirdekli 4G bellek VM'sinde% 50'den fazla CPU tüketiyor çalışıyor.
Tek bir makineye karşı çalıştırmak yaklaşık 11 saniye sürer, yaklaşık 4 saniyelik kullanıcı + sys CPU süresi tüketilir, bu da TBH'nin hala işin miktarı için biraz aşırı görünmesi.
Bariz bitler:
- Bir playbook-dir yerel ansible.cfg açıkça etkinleştirilen boru hattı var
- Jsonfile etkin, aynı yerel ansible.cfg için önbellekleme aslında var
- 50, aynı çatal set var (diğer değerleri denedim)
- Ansible'ın Paramiko değil SSH kullandığından ve kalıcı kontrol soketini kullandığından eminim - çalışma sırasında SSH işlemlerinin başlatıldığını ve sürdüğünü görebiliyorum.
Bu performans düzeyi normal mi yoksa kurulumumda bir sorun mu var? Öyleyse ne olduğunu nasıl belirleyebilirim?
Düzenleme: Ağustos 2017 itibariyle hala bu sorunu görüyoruz. Ansible sürümü 2.2.1 ve oyun kitabı boyutu şimdi büyüdü. Güncel numaralar:
- 98 ev sahibi
ansible -m ping all
4.6s gerçek, 3.2s kullanıcı, 2.5s sys kez alır- tam bir oynatma kitabı çalıştırması 4 dakika sürer, bunu yaparken% 100 kullanıcı ve ~% 35 sistem CPU'sunu kullanır (2 çekirdekli VM dağıtım sunucusunda,% 100 bir tam CPU'dur)
- hedef OS büyük ölçüde CentOS 7, bazı CentOS 6
- profilleme herhangi bir özel görev etkin noktasını göstermez AFAICT
Oyun kitabı şimdi çok daha büyük olmasına rağmen, hala oyun kitabı sunucusundaki CPU yükünün seviyesini haklı çıkaracak bir şey olduğunu düşünmüyorum - belki de duvar saati zamanı, ancak dağıtım sunucusu çalışmaların çoğu için büyük ölçüde boşta olmalı, gördüğüm kadarıyla, çoğunlukla dosya kopyaları ve bazı şablon genişletmeleri.
Ana bilgisayar / grup araçlarını oldukça kapsamlı kullandığımızı unutmayın
Birkaç kişi profilleme, profillemeli bir koşu kuyruğu hakkında sorular sordu:
Tuesday 01 August 2017 16:02:24 +0100 (0:00:00.539) 0:06:22.991 ********
===============================================================================
yumrepo : centos repos -------------------------------------------------- 9.77s
sshd : copy CentOS 6 sshd config ---------------------------------------- 7.41s
sshd : copy CentOS 7 sshd config ---------------------------------------- 6.94s
core : ensure core packages are present --------------------------------- 6.28s
core : remove packages on VM guests ------------------------------------- 5.39s
resolv : stop NetworkManager changing resolv.conf ----------------------- 5.25s
yumrepo : epel6 gpg key ------------------------------------------------- 3.94s
yumrepo : epel7 gpg key ------------------------------------------------- 3.71s
yumrepo : nsg gpg key --------------------------------------------------- 3.57s
resolv : build resolv.conf ---------------------------------------------- 3.30s
yumrepo : nsg repo ------------------------------------------------------ 2.66s
resolv : check NetworkManager running ----------------------------------- 2.63s
yumrepo : psp repo ------------------------------------------------------ 2.62s
yumrepo : ucs repo ------------------------------------------------------ 2.44s
yumrepo : epel repo ----------------------------------------------------- 2.27s
resolv : check for nmcli ------------------------------------------------ 2.08s
core : remove various unwanted files ------------------------------------ 1.42s
telegraf : write telegraf.conf file ------------------------------------- 1.13s
core : copy sudoers in place -------------------------------------------- 0.94s
core : ensure sshd is running ------------------------------------------- 0.90s
watch cat /proc/sys/kernel/random/entropy_avail
oynatma kitabı çalışırken. 1000'den az ise potansiyel bir sorun var; 64 den az ve iyileşmezse, kesin bir entropi açlık sorununuz var. (bazı VM ortamlarında yaygındır). Bu, yönetim sunucunuz ve yönettiğiniz düğümler için geçerlidir.
ansible -i all all -m ping
300'ün üzerinde ana bilgisayara (çoğunlukla VM'ler) karşı 1 dakikadan az sürdü. Başucu kitabınız kullanıcıyı değiştirmek için herhangi bir şey yapıyor mu (/ sudo / vb.). '-M ping' nasıl bir performans sergiliyor? Deneyime dayanarak, 50 çatal için daha fazla hafızaya sahip olmak istediğinizi söyleyebilirim.
ANSIBLE_CALLBACK_WHITELIST=profile_tasks
ve daha ayrıntılı hata ayıklama için yapınANSIBLE_DEBUG=1
. Ayrıca ilk ssh bağlantı hızında da dikkatli olun.