个人名片:
因为云计算成为了监控工程师‍
个人博客:念舒_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. 开源:Taurus.MVC-Java 版本框架 (支持javax.servlet.*和jakarta.servlet.*双系列,内集成微服务客户端)

    版本说明: 因为之前有了Taurus.MVC-DotNet 版本框架,因此框架标了-Java后缀. .Net  版本: 开源文章:开源:Taurus.MVC-DotNet 版本框架 (支持.NET C ...

  2. STL再回顾(非常见知识点)

    目录 为人熟知的pair类型 再谈STL 迭代器的使用 常用的STL容器 顺序容器 vector(向量) 构造方式 拥有的常用的成员函数(java人称方法) string 构造方式 成员函数 dequ ...

  3. Java八股文纯享版——篇②:并发编程

    注: 1.笔记为个人归纳整理,尽力保证准确性,如有错误,恳请指正 2.写文不易,转载请注明出处 3.本文首发地址 https://blog.leapmie.com/archives/c02a6ed1/ ...

  4. Python数据科学手册-Pandas:数值运算方法

    Numpy 的基本能力之一是快速对每个元素进行运算 Pandas 继承了Numpy的功能,也实现了一些高效技巧. 对于1元运算,(函数,三角函数)保留索引和列标签 对于2元运算,(加法,乘法),Pan ...

  5. 全志H616基于官方外设开发-蜂鸣器

    #include <stdio.h> #include <wiringPi.h> #include <unistd.h> #define BEEP 0 //设置针脚 ...

  6. 【BotR】CLR类型系统

    .NET运行时之书(Book of the Runtime,简称BotR)是一系列描述.NET运行时的文档,2007年左右在微软内部创建,最初目的是为了帮助其新员工快速上手.NET运行时:随着.NET ...

  7. 通过管理接口配置ProxySQL

    可以使用mysql客户端来连接管理接口,以下是使用admin凭据连接到本地6032端口的管理接口: $ mysql -u admin -padmin -h 127.0.0.1 -P6032 --pro ...

  8. 从nuxt开始的SEO之路

    故事从一个"美好"的早上开始...... 大清早的来到公司,打开电脑,emm, 还是熟悉的味道,鱼儿被我摸熟了的味道......就在开始准备一天的摸鱼之旅的时候,一种不详的预感涌上 ...

  9. Linux+Wine运行QQTIM (2022年9月)

    测试的版本Tim3.4.0 QQ9.6.7 如果你的系统没有Wine先装Wine,Wine在各大发行版的源都能找到.记住32位和64位的Wine都要装 去https://tubentubentu.pa ...

  10. Module Federation 模块联邦 在Vue3中使用Vue2搭建的微服务

    前言: 备注:本文基于对webpack Module Federation有一定了解的情况下 一般情况下使用模块联邦都是会使用相同的版本,如Vue2的组件时在Vue2中使用,但我为什么会在Vue3项目 ...