分析任務執行時間
在遇到執行 playbook 花費較多時間的情況時,該怎麼去進行分析,找出執行效能瓶頸呢?
在 ansible-core 2.15 版以前,可以在 ansible.cfg 裡加上 callback_whitelist = profile_tasks
來進行分析。
在 ansible-core 2.15 版以後,就強制要使用新的設定 callback_enabled = profile_tasks
了。
設定方法如下:(ansible.cfg 可以是在 playbook 所在的路徑,也可以修改 /etc/ansible/ansible.cfg)
# 2.15 之前
[defaults]
callback_whitelist = profile_tasks
# 2.15 之後
[defaults]
callback_enabled = profile_tasks
那麼在執行 playbook 時,就會輸出每個 task 的運行時間,讓你知道哪個 task 花費最多時間。
PLAY [NTP] *************************************************************************************************************
TASK [Gathering Facts] *************************************************************************************************
Monday 18 April 2022 10:39:45 +0800 (0:00:00.016) 0:00:00.016 **********
ok: [taipei-2-2]
ok: [taipei-2-1]
ok: [taipei-1-2]
ok: [taipei-1-1]
ok: [taipei-1-3]
ok: [tainan-1-3]
ok: [tainan-1-2]
ok: [tainan-1-1]
ok: [tainan-1-4]
ok: [taipei-2-3]
TASK [Make sure NTP enabled and started] *******************************************************************************
Monday 18 April 2022 10:39:55 +0800 (0:00:10.116) 0:00:10.133 **********
ok: [taipei-2-2]
ok: [taipei-2-1]
ok: [taipei-1-2]
ok: [taipei-1-3]
ok: [taipei-1-1]
ok: [taipei-2-3]
ok: [tainan-1-1]
ok: [tainan-1-3]
ok: [tainan-1-4]
ok: [tainan-1-2]
PLAY RECAP *************************************************************************************************************
tainan-1-1 : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
tainan-1-2 : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
tainan-1-3 : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
tainan-1-4 : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
taipei-1-1 : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
taipei-1-2 : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
taipei-1-3 : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
taipei-2-1 : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
taipei-2-2 : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
taipei-2-3 : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
Monday 18 April 2022 10:39:58 +0800 (0:00:03.264) 0:00:13.397 **********
===============================================================================
Gathering Facts ------------------------------------------------------------------------------------------------ 10.12s
Make sure NTP enabled and started ------------------------------------------------------------------------------- 3.26s
除了 task 以外,也可以分析 role 執行效能的話,這時可以再加上 profile_roles
# 2.15 之後
[defaults]
callback_enabled = profile_tasks,profile_roles