一直用的 jenkins + saltstack 自动化构建发布项目,一共也就不超过20台服务器,奈何运行时间越来越慢,并且负载越来越高(这里大部分都是使用state模块),但是不用state模块效率挺高的,所以初步锁定坑应该在 state配置以及运行机制上.

查阅各种资料果不其然,需要注意几点.

Minion 配置


By default, the Salt fileserver recurses fully into all defined environments
to attempt to find files. To limit this behavior so that the fileserver only
traverses directories with SLS files and special Salt directories like _modules,
enable the option below. This might be useful for installations where a file root
has a very large number of files and performance is negatively impacted. Default
is False.

# 关闭软连接
fileserver_followsymlinks: False
# 忽略软连接
fileserver_ignoresymlinks: True
# 见上面的引文
fileserver_limit_traversal: True

虽然我修改了minion配置里的 fileserver_limit_traversal 为true 但是效果还是不明显,因为这个fileserver目录里面太多文件了(node打包等一系列文件全在里面,文件数太多了(⊙﹏⊙)b),由上面的引文可见

默认情况,每次执行state文件,minion都会发出 “_file_list” 命令从master同步整个文件列表。当fileserver(即master端配置文件中file_roots设置的目录)中的文件比较多的情况下,会增大集群负载.

再github上也搜到类似的问题,提供思路

参考:

http://vearne.cc/?p=88

https://github.com/saltstack/salt/issues/30498

saltstack执行state.sls耗时长的坑的更多相关文章

  1. 自动化运维工具SaltStack - 多环境(使用记录【state.sls 与 state.highstate】)

    转自:https://segmentfault.com/a/1190000000513137 今天在进行 saltstack 多环境的时候,遇到一个问题,最终得到解决,好记性不如烂笔头,记录. 首先, ...

  2. saltstack/salt的state.sls的使用

    SLS(代表SaLt State文件)是Salt State系统的核心.SLS描述了系统的目标状态,由格式简单的数据构成.这经常被称作配置管理 首先,在master上面定义salt的主目录,默认是在/ ...

  3. Saltstack系列6:Saltstack之state

    state功能 state是Saltstack最核心的功能,通过预先定制好的sls(salt state file)文件对被控制主机进行状态管理,支持包括程序包(pkg).文件(file).网络配置( ...

  4. state.sls与state.highstate区别

    最近编写kubernetes的saltstack状态配置文件,在github上找到一个开源的salt文件,根据自己的需要,完成修改之后.执行部署测试 大致目录结构如下: |----k8s | |___ ...

  5. saltstack(五) saltstack的state状态管理

    一,YAML语法 首先先了解一下YAML,默认的SLS文件的renderer是YAML renderer.YAML是一个有很多强大特性的标记性语言.Salt使用了一个YAML的小型子集,映射非常常用的 ...

  6. salt state.sls windows 传输文件

    salt 安装 - 传输文件  一.master  -- minion linux 下 master 拷贝到 minion 上 1.cp.get_file 拷贝文件 # salt '172.16.3. ...

  7. redis 间断性耗时长问题解决

    我发现开发项目用的redis 隔一两分钟就出现 耗时问题,长达五秒.一开始以为是 redis 服务器不稳定,但运维测试发现redis稳定的,在高并发下最大耗时也就只有100毫秒左右,怎么也不可能达到5 ...

  8. write 系统调用耗时长的原因

    前一阵子公司一部门有人叫帮忙调查,说他们write系统调用基本上是个位数微秒就返回,或者说几十us,但偶尔出现几次write系统调用达到几百毫秒和情况.大家都知道,通过vfs进行write,都是写写到 ...

  9. saltstack执行结果存储到MySQL

    saltstack执行结果保存到MySQL中,以便进行命令安全审计必须是python2.7以上的环境安装相关模块ubuntu系统安装 apt-get install -y python-mysqldb ...

随机推荐

  1. node基础学习——操作文件系统fs

    操作文件系统fs 1.在Node.js中,使用fs模块来实现所有有关文件及目录的创建.写入及删除.在fs模块中,所有对文件及目录的操作都可以使用同步与异步两种方法,具有Sync后缀的方法均为同步方法. ...

  2. MySQL:主键、外键、索引(一)

    干货: 主键是关系表中记录的唯一标识.主键的选取非常重要:主键不要带有业务含义,而应该使用BIGINT自增或者GUID类型.主键也不应该允许NULL.可以使用多个列作为联合主键,但联合主键并不常用. ...

  3. Vue 路由守卫解决页面退出和弹窗的显示冲突

    在使用UI框架提供的弹出层Popup时,如Vant UI的popup,在弹出层显示时,点击物理按键或者小程序自带的返回时,会直接退出页面,这明显不符合页面逻辑. 解决思路: 在弹出层显示时,点击了返回 ...

  4. 次小生成树(lca)

    题目描述 原题来自:BeiJing 2010 组队赛 给定一张 N 个点 M 条边的无向图,求无向图的严格次小生成树. 设最小生成树的边权之和为 sum,严格次小生成树就是指边权之和大于 sum 的生 ...

  5. VisualStudio 2019 Serials

    9DP6T-9AGWG-KWV33-9MPC8-JDCVF 7G2HE-JR8KL-ABB9D-Y7789-GLNFL U2PWU-H7D9H-69T3B-JEYC2-3R2NG R8R8P-MTT6 ...

  6. Greenplum 资源队列(转载)

    1.创建资源队列语法 Command:     CREATE RESOURCE QUEUEDescription: create a new resource queue for workload m ...

  7. WinDbg常用命令系列---内存查看d*

    d*命令显示给定范围内的内存内容. d{a|b|c|d|D|f|p|q|u|w|W} [Options] [Range] dy{b|d} [Options] [Range] d [Options] [ ...

  8. 25-ESP8266 SDK开发基础入门篇--控制WIFI连接路由器

    https://www.cnblogs.com/yangfengwu/p/11324411.html 说个事情,现在SDK的版本已经出到3.0了,但是我还是使用2.0 如果只是为了学习研究   选择3 ...

  9. android 自己制作Jar包 和 修改 现成的 Jar包文件

    先看如何创建自己的 Jar 包 里面随便写个方法 public int add(int a,int b){ return (a+b); } task makeJar(type: Copy) { del ...

  10. 嘉立创制作PCB流程

    现在做板子基本上是选择嘉立创和捷配,今天看一下嘉立创如何下PCB和STM贴片单,改天再写一下捷配的下单 我喜欢用下单助手,比较方便 注意需要把自己的板子的PCB文件用压缩软件生成压缩包文件,名字自己取 ...