我设计了一个包含3个虚拟机的3级基础架构(testfer-01,testfer-02& testfer-03),而第3个基础架构不可能达到第1个,因此第2个必须采取行动作为中间人。为此,我在第二层使用了salt-syndic守护进程。更多信息:http://docs.saltstack.com/en/latest/topics/topology/syndic.html
总而言之,这就是每个VM上运行的内容:
testfer-01: salt-master
testfer-02: salt-master, salt-syndic & salt-minion
testfer-03: salt-minion
我已设置以下文件(默认设置其他所有选项):
testfer-01:在/ etc /盐/主:
order_masters: True
testfer-02:在/ etc /盐/主:
syndic_master: testfer-01
testfer-02:在/ etc /盐/仆从:
master: testfer-01
testfer-03:在/ etc /盐/仆从:
master: testfer-02
然后,一旦钥匙被接受,我已经成功地"测试了顶层机器的连接性。但是,太多时间:
[root@testfer-01 ~]# time salt '*' test.ping
testfer-02.local:
True
testfer-03.local:
True
real 0m15.412s
user 0m0.716s
sys 0m0.216s
任何人都知道为什么?
编辑:显示命令/模块输出(那些" True"本例中的字符串)非常快(不超过2秒)。但是,如果我对这个过程进行了分析,那么这个过程会显示大量的gettimeofday调用大约10秒......
...
poll([{fd=30, events=POLLIN}], 1, 0) = 0 (Timeout)
gettimeofday({1421223627, 431608}, NULL) = 0
select(0, NULL, NULL, NULL, {0, 10000}) = 0 (Timeout)
poll([{fd=9, events=POLLIN}], 1, 0) = 0 (Timeout)
gettimeofday({1421223627, 441964}, NULL) = 0
poll([{fd=30, events=POLLIN}], 1, 0) = 0 (Timeout)
gettimeofday({1421223627, 442102}, NULL) = 0
select(0, NULL, NULL, NULL, {0, 10000}) = 0 (Timeout)
poll([{fd=9, events=POLLIN}], 1, 0) = 0 (Timeout)
gettimeofday({1421223627, 452523}, NULL) = 0
poll([{fd=30, events=POLLIN}], 1, 0) = 0 (Timeout)
gettimeofday({1421223627, 452720}, NULL) = 0
...
答案 0 :(得分:1)
我们刚刚在repo.saltstack.com上发布了2016.3版本,这对于syndic有几个非常重要的速度改进和修复。你可以对此进行测试吗?
答案 1 :(得分:0)
使用版本2016.3而没有其他单一修改:
$scope.clinicWorkingSchedules = [
{ workingDay: '',
workingHours: []
}
]
$scope.sendClinicTiming= function(id,workingDay,fromTime,toTime){
var data={
'id':id,
'clinicWorkingSchedules':$scope.clinicWorkingSchedules
};
$http.post($scope.API_url,
data, config)
.success(function(data, status));
};