ansible执行速度慢怎么解决

PHPz
发布: 2024-03-05 17:34:02
转载
867人浏览过

收到项目反馈,客户在使用我们提供的工具部署产品时遇到了困难,在主机添加步骤上遇到了问题,导致实施团队无法继续推进工作,因此向我们寻求帮助。

环境信息:kylin10

架构:arm

ansible执行速度慢怎么解决

初见端倪

在系统部署过程中,针对主机的批量操作,我们开发时采用了ansible剧本。最近遇到了执行过程卡顿的问题,初步怀疑是ansible执行时出现了阻塞。为了验证这一点,我已经发送了一条命令给现场进行测试。

localhost$ date
2024年02月19日星期 17:30:41 CST 
localhost$ ansible all -i "192.168.2.84, -m shell -a 'date' --l become --become-method=sudo --become-user=root -u test
192.168.2.84 CHANGED rc=0 >> 
2024年02月19日星期 17:33:34 CST 
登录后复制

果然,一条简单的ansible命令,环境上执行了2min多才返回结果,问题原因就出在这里了,有了大致方向。

ansible实际执行时仍然依赖SSH远程连接,之前遇到SSH连接速度缓慢的情况,初步推测可能是由于SSH连接速度慢导致执行返回速度慢。

检查ssh参数,查/etc/ssh/sshd_config配置

GSSAPIAuthentication no #关闭SERVER上的GSS认证  
登录后复制

在linux中,默认就是开启了SSH的反向DNS解析,这个会消耗大量时间,因此需要关闭。在配置文件中,虽然UseDNS yes是被注释的,但默认开关就是yes

UseDNS=no  #关闭SERVER上DNS反向解析 
登录后复制

结果发现,项目上这2个ssh参数配置都是和上面一致的,并且手工测试ssh登录对端主机,速度很快

问题分析

没有头绪,只能用linux的strace命令跟踪下系统调用了

ansible执行速度慢怎么解决

查看strace日志发现有大量的select等待,应该是在执行某项操作时长时间阻塞。

使用ansible调试

ansible all -i "192.168.2.84, -m shell -a 'date' --l become --become-method=sudo --become-user=root -u test -vvv
登录后复制

命令后加上-vvv就可以看到详细的执行过程了

ansible执行速度慢怎么解决

解决问题

从debug信息中,看到报错”mux_client_read_packet: read header failed: Broken pipe”,执行脚本的地方可以看到在执行python相关的命令,ansible依赖于python,是否和python版本有关系呢?

在网上查看资料说ansible和python存在兼容性问题。

ansible执行速度慢怎么解决

于是检查下python版本,可以看到python默认版本为python2,但是系统上也有python3,尝试将软链接修改python3.7验证

ansible执行速度慢怎么解决

再次执anible命令

ansible执行速度慢怎么解决

执行时间1.3s,看来是ansible和python版本的兼容性导致了这次问题。

以上就是ansible执行速度慢怎么解决的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
相关标签:
来源:每日运维网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号