我有一个部署脚本,我希望我所有的Web服务器同时执行从同一地点的git pull 。 当只有两台服务器同时进行pull时,没有问题。 一旦我有三台或四台服务器,那么经常发生一台或多台服务器超时,并没有完成拉。 我通过SSH使用Git。
有任何服务器软件,我可以使用,将pipe理传入的请求,并处理每个人或东西?
谢谢
您可能只是在托pipe主git回购的服务器上有一些限制。 你不提供任何数据来帮助诊断,但是如果你使用的服务器很慢或者很便宜,我会开始考虑可能的IO争用。
所有的networking服务器真的需要同时拉动吗? 如果不是这样,只需在进行拉动之前,让每次睡眠的时间为随机数(例如0到15之间),为脚本添加一点“模糊”。
如果这不是一个选项,那么在启动部署脚本之前,尝试从工作站执行手动git pull(到与web服务器处于相同状态的repo)。 这将引发服务器的磁盘caching,并希望它能够提供大部分的caching,而不是击中实际的磁盘。