Ansible批量执行命令慢的解决思路
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ansible批量执行命令慢的解决思路相关的知识,希望对你有一定的参考价值。
做运维的同学很多都用过ansible吧,开源批量部署工具排名前三的:puppet, saltstack, ansible。
ansible的特点是没有agent,采用ssh协议来通讯,轻量级,采用python编写,既可以写playbook,也可以做一些ad-hoc的批量命令执行操作。
最近在两台ansible主机上执行ansible命令时发现对同样的客户机执行同样的命令,所用的时间相差却很大,两台ansible主机配置性能都一样。我感到很奇怪,于是想一探究竟。
当然首先是用time命令来查看准确的时间消耗。
Result: on host1
real 150.42
user 27.80
sys 11.97
Result on host2
real 59.40
user 31.80
sys 12.96
从real time可以看出,差了将近3倍。
用top看机器的cpu和memory都比较空,于是想到有没有可能是IO的问题,用如下命令查看
iostat -x 5 3
发现IO占用也很小,于是又想会不会是谁调整了系统参数导致的问题,于是用time命令输出很多详细参数
/usr/bin/time -f ‘Number of waits %w \nNumber of file system inputs by the process %I \nNumber of file system outputs by the process %O \nNumber of socket messages received by the process %r \nNumber of socket messages sent by the process %s \nSystem’s page size %Z \nPercentage of the CPU that this job got %P \nAverage total (data+stack+text) memory use of the process, in Kbytes %K \nMaximum resident set size of the process during its lifetime, in Kbytes %M \nNumber of major page faults that occurred while the process was running %F \nNumber of times the process was swapped out of main memory %W \nreal %e \nuser %U \nsys %S \n‘ ansible -i hosts/cluster regionservers -kK -U root -u username -m command -a "uptime" -f 100
对比之后发现也没有大问题,最后把目光聚焦到ansible本身身上。
查看ansible配置文件/etc/ansible/ansible.cfg,对比后发现有一行被注视掉了
host_key_checking = False
修改后,在跑ansible命令,速度起来了!
至此问题解决。
本文提供一个解决问题的一般性思路,当然,这里面还有可能是网络问题,一步一步的排查。
大家有什么问题可以留言讨论。
本文出自 “Linux运维” 博客,谢绝转载!
以上是关于Ansible批量执行命令慢的解决思路的主要内容,如果未能解决你的问题,请参考以下文章