在做性能優(yōu)化之前首先需要做的是收集一些統(tǒng)計數(shù)據(jù),這樣才能為后面做的性能優(yōu)化提供數(shù)據(jù)支持,對比優(yōu)化前后的結(jié)果卖漫。非常不錯的是,在 github 發(fā)現(xiàn)一個 Ansible 任務(wù)計時插件“ansible-profile”至会,安裝這個插件后會顯示 ansible-playbook 執(zhí)行每一個任務(wù)所花費的時間。
** 在
ansible2.2
版本以上谱俭,ansible自帶了/usr/lib/python2.6/site-packages/ansible/plugins/callback/profile_tasks.py
文件奉件,所以宵蛀,只需在callback_whitelist開啟這個插件,從而不需要下載這個文件县貌,就可以實現(xiàn)統(tǒng)計任務(wù)處理時間的功能术陶。**
Github 地址:https://github.com/jlafon/ansible-profile
這個插件安裝很簡單,只需要簡單的三個命令即可完成安裝煤痕。在你的 playbook 文件的目錄下創(chuàng)建一個目錄梧宫,目錄名 callback_plugins 然后將下載的 profile_tasks.py 文件放到該目錄下。
cd /etc/ansible
mkdir callback_plugins
cd callback_plugins
wget https://raw.githubusercontent.com/jlafon/ansible-profile/master/callback_plugins/profile_tasks.py
ansible 2.0版本需要在ansible.cfg 中加入
callback_whitelist = profile_tasks
現(xiàn)在摆碉,執(zhí)行 ansible-playbook 命令就會看到 playbook 中每個 tasks 的用時情況塘匣。
在這里,我設(shè)置了 2 個 task巷帝,1 個 task sleep2 秒忌卤,另 1 個 task sleep4秒,在 PLAY RECAP 處會匯總所有 task 執(zhí)行消耗的時間楞泼,并按照耗費時間排序驰徊。
更多文章請看 Ansible 專題文章總覽