Ansible性能优化全攻略
1. SSH连接时间分析与多路复用
在使用Ansible执行命令时,我们真正关心的是总时间。例如,首次执行命令的总时间为0m0.319s,这意味着执行整个命令花费了0.319秒。再次执行时,总时间降至0m0.010s,每次SSH连接节省了约0.3秒。
Ansible执行每个任务至少需要两个SSH会话:一个用于将模块文件复制到主机,另一个用于执行模块文件。因此,SSH多路复用能为剧本中的每个任务节省大约一到两秒的时间。
Ansible的SSH多路复用选项如下表所示:
| Option | Value |
| ---- | ---- |
| ControlMaster | auto |
| ControlPath | ~/.ssh/sockets/%r@%h:%p |
| ControlPersist | 60s |
通常无需更改 ControlMaster 的默认值。 ControlPersist=10m 可减少创建套接字的开销,但在笔记本电脑开启多路复用后进入睡眠状态时会有一些权衡。
ControlPath 选项有时需要修改,因为操作系统对Unix域套接字的路径长度有限制。如果 ControlPath 字符串过长,多路复用将无法工作,且Ansible不会提示该问题,只会在不使用SSH多路复用的情况下运行。
可以在控制机上手动测试:
$ CP=~/.
超级会员免费看
订阅专栏 解锁全文
1524

被折叠的 条评论
为什么被折叠?



