个人名片:
因为云计算成为了监控工程师‍
个人博客:念舒_C.ying
CSDN主页️:念舒_C.ying

优化⼀: 开启SSH长连接

Ansible模式是使⽤SSH和远程主机进⾏通信, 所以Ansible对SSH的依赖性⾮常强, 在OpenSSH 5.6版本以后SSH就⽀持了Multiplexing, 关于这个特性我们可以参考 Multiplexing⼿册. 所以如果Ansible中控机的SSH -V版本⾼于5.6时, 我们可以直接在ansible.cfg⽂件中设置SSH⻓连接, 设置参数如下:

ssh_args = -C -o ControlMaster=auto -o ControlPersist=5d

ConrolPersist=5d, 这个参数是设置整个⻓连接保持时间为5天.
开启此参数后, 通过SSH连接过的设备都会在当前ansible/cp/⽬录下⽣成⼀个socket⽂件. 也可以通过netstat命令查看, 会发现有⼀个ESTABLISHED状态的连接⼀直与远程设备进⾏着TCP连接

netstat -anptu

优化二: 开启Pipelining

pipelining也是OpenSSH的⼀个特性, 在Ansible的整个执⾏流程中, 把⽣成好的本地python脚本PUT到远程服务器. 如果开启了pipelining, 这个过程将在SSH会话中进⾏, 这样可以⼤⼤提⾼整个执⾏效率. 当然开启pipelining, 需要被控机/etc/sudoers⽂件编辑当前Ansible SSH⽤户的配置为requiretty.否则在执⾏Ansible的时候会提示报错

bavdu@ansible:~$ sudo vim /etc/ansible/ansible.cfg
pipelining = True

这样开启了pipelining之后, ansible执⾏的整个流程就少了⼀个PUT脚本去远程服务端的流程

优化三: 开启accelerate模式

Ansible还有⼀个accelerate模式, 这和前⾯的Multiplexing有点类似, 因为都依赖Ansible中控机跟远程机器有⼀个⻓连接. 但是accelerate是使⽤python程序在远程机器上运⾏⼀个守护进程, 然后Ansible会通过这个守护进程监听的端⼝进⾏通信. 开启accelerate模式很简单, 只要在playbook中配置accelerate: true即可.
但是需要注意的是: 如果开启accelerate模式, 则需要在Ansible中控机与远程机器都安装pythonkeyczar软件包. 下⾯是在ansible.cfg⽂件中定义⼀些accelerate参数, 当然也可以在写playbook的时候再定义

[accelerate]
accelerate_port = 5099
accelerate_timeout = 30
accelerate_connect_timeout = 5.0

优化四: 设置facts缓存

如果细⼼的话, 就会发现执⾏playbook的时候, 默认第⼀个task都是GATHERING FACTS, 这个过程就是Ansible在收集每台主机的facts信息. ⽅便我们在playbook中直接饮⽤facts⾥的信息. 当然如果你的playbook中不需要facts信息, 可以在playbook中设置gather_facts: False来提⾼playbook效率.
但是如果我们既想在每次执⾏playbook的时候都能收集facts, ⼜想加速这个收集过程, 那么就需要配置facts缓存了. ⽬前Ansible⽀持使⽤json⽂件存储facts信息. 如下设置示例:/etc/ansible/ansible.cfg

gathering = smart
fact_caching_timeout = 86400
fact_caching = jsonfile
fact_caching_connection = /dev/shm/ansible_fact_cache

期待下次的分享,别忘了三连支持博主呀~
我是 念舒_C.ying ,期待你的关注~

Ansible执⾏速度优化的更多相关文章

  1. Ansible管理上千台主机时需要的速度优化

    1 开启ssh长连接 OpenSSH 5.6版本后SSH支持了Multiplexing 设置参数 ssh_args = -C -o ControlMaster=auto -o ControlPersi ...

  2. dWebpack编译速度优化实战

    当你的应用的规模还很小时,你可能不会在乎Webpack的编译速度,无论使用3.X还是4.X版本,它都足够快,或者说至少没让你等得不耐烦.但随着业务的增多,嗖嗖嗖一下项目就有上百个组件了,也是件很简单的 ...

  3. [转]Asp.net mvc 网站之速度优化 -- 页面缓存

    网站速度优化的一般方法 由于网站最重要的用户体验就是速度,特别是对于电子商务网站而言. 一般网站速度优化会涉及到几个方面: 1. 数据库优化 — 查询字段简历索引,使用数据库连接池和持久化,现在还有种 ...

  4. web访问速度优化分析

    请求从发出到接收完成一共经历了DNS Lookup.Connecting.Blocking.Sending.Waiting和Receiving六个阶段,时间共计38ms.请求完成之后是DOM加载和页面 ...

  5. Tone Mapping算法系列二:一种自适应对数映射的高对比度图像显示技术及其速度优化。

    办公室今天停电,幸好本本还有电,同事们好多都去打麻将去了,话说麻将这东西玩起来也还是有味的,不过我感觉我是输了不舒服,赢了替输的人不舒服,所以干脆拜别麻坛四五年了,在办公室一个人整理下好久前的一片论文 ...

  6. ansible系列5-开启加速 Ansible 执行速度的功能

    SSH pipelining 是一个加速 Ansible 执行速度的简单方法.ssh pipelining 默认是关闭,之所以默认关闭是为了兼容不同的 sudo 配置,主要是 requiretty 选 ...

  7. 记一次cocos项目的加载速度优化

    半个月前,我们用cosos creator做了一个简单的小游戏,也许算不上小游戏吧..一边学cocos,一边做,几经波折后终于上线了.然鹅,功能是实现了,但是加载速度十分感人(毕竟没经验嘛,无辜脸). ...

  8. Mysql数据库写入数据速度优化

    Mysql数据库写入数据速度优化 1)innodb_flush_log_at_trx_commit 默认值为1:设置为0,可以提高写入速度.  值为0:提升写入速度,但是安全方面较差,mysql服务器 ...

  9. (转)网站速度优化技巧:Nginx设置js、css过期时间

    网站速度优化技巧:Nginx设置js.css过期时间 原文:http://www.webkaka.com/blog/archives/Nginx-set-the-expiration-time-for ...

  10. Asp.net mvc 网站之速度优化 -- 页面缓存

    网站速度优化的一般方法 由于网站最重要的用户体验就是速度,特别是对于电子商务网站而言. 一般网站速度优化会涉及到几个方面: 1. 数据库优化 — 查询字段简历索引,使用数据库连接池和持久化,现在还有种 ...

随机推荐

  1. python自动化测试系列教程

    随着互联网产品更新迭代加快,Web 开发和测试的需求也越来越大.很难想象,如果阿里的双 11.京东的 618,这些庞大繁杂的系统,由工程师们一个个手动测试,将会是一个怎样费时费力.成本巨大的工程. 也 ...

  2. docker bridge 到 k8s pod 跨节点网络通信机制演进

  3. Elasticsearch API响应的一些常用选项

    我们可以点击Elasticsearch API以获取所需的响应,但是如果要修改API响应,以便我们更改显示格式或过滤掉某些字段,然后我们可以将这些选项与查询一起应用. 有一些常见的选项可以适用于API ...

  4. 在k8s中部署前后端分离项目进行访问的两种配置方式

    第一种方式 (1) nginx配置中只写前端项目的/根路径配置 前端项目使用的Dockerfile文件内容 把前端项目编译后生成的dist文件夹放在nginx的html默认目录下,浏览器访问前端项目时 ...

  5. ElastAlert配置和告警规则各种用法

    config.yaml配置说明 #用来加载rule的目录,默认是example_rules rules_folder: example_rules #用来设置定时向elasticsearch发送请求 ...

  6. ElastAlert监控日志告警Web攻击行为---tomcat和nginx日志json格式

    一.ELK安装 1.2 elk配置 logstash自定义配置文件,取名为filebeat_log.conf : input { beats { port => 5044 client_inac ...

  7. 聊聊Vim的工作原理

    聊聊Vim的工作原理 日常里一直在用Vim这个编辑器,前阵子学习关于Linux中的fd(文件描述符)时,发现vim的进程描述符会比上一个自动加一,后续了解到vim的工作原理后,解开了这个疑问,所以记录 ...

  8. Activate MFA报错:MFADevice entity at the same path and name already exists

    MFA即:Multi-factor authentication (MFA) 今天在为自己账号Activate MFA时报错,如下图所示: Entity already exists This ent ...

  9. IDEA中直接将 SpringBoot项目打包成 Docker镜像时 pom.xml的配置

    <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactI ...

  10. Apache Dolphin Scheduler 3.0.1 发布,对核心及UI相关进行优化

    点亮 ️ Star · 照亮开源之路 GitHub:https://github.com/apache/dolphinscheduler ​ 版本发布 感谢本次的 Release Manager -- ...