在做性能優化之前首先需要做的是收集一些統計數據,這樣才能為后面做的性能優化提供數據支持,對比優化前后的結果。非常不錯的是,在 github 發現一個 Ansible 任務計時插件“ansible-profile”,安裝這個插件后會顯示 ansible-playbook 執行每一個任務所花費的時間。
** 在
ansible2.2
版本以上,ansible自帶了/usr/lib/python2.6/site-packages/ansible/plugins/callback/profile_tasks.py
文件,所以,只需在callback_whitelist開啟這個插件,從而不需要下載這個文件,就可以實現統計任務處理時間的功能。**
Github 地址:https://github.com/jlafon/ansible-profile
這個插件安裝很簡單,只需要簡單的三個命令即可完成安裝。在你的 playbook 文件的目錄下創建一個目錄,目錄名 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
現在,執行 ansible-playbook 命令就會看到 playbook 中每個 tasks 的用時情況。
Paste_Image.png
在這里,我設置了 2 個 task,1 個 task sleep2 秒,另 1 個 task sleep4秒,在 PLAY RECAP 處會匯總所有 task 執行消耗的時間,并按照耗費時間排序。
更多文章請看 Ansible 專題文章總覽