saltstack執行state.sls耗時長的坑

      一直用的 jenkins + saltstack 自動化構建發佈項目,一共也就不超過20臺服務器,奈何運行時間愈來愈慢,而且負載愈來愈高(這裏大部分都是使用state模塊),可是不用state模塊效率挺高的,因此初步鎖定坑應該在 state配置以及運行機制上.node

查閱各類資料果不其然,須要注意幾點.git

Minion 配置github


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),由上面的引文可見this

默認狀況,每次執行state文件,minion都會發出 「_file_list」 命令從master同步整個文件列表。當fileserver(即master端配置文件中file_roots設置的目錄)中的文件比較多的狀況下,會增大集羣負載.spa

再github上也搜到相似的問題,提供思路3d

 

參考:   code

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

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

相關文章
相關標籤/搜索