Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I have a deploy script where I want all of my webservers to simultaneously perform a git pull from the same place. When only two servers do the pull simultaneously, there are no problems. Once I have three or four servers, then it often happens that one or more servers 'times out' and doesn't finish the pull. I am using git over ssh.

Is there any server software I can use that will manage the incoming requests and and deal with each one individually or something?

Thanks

share|improve this question

1 Answer 1

You're likely just hitting some limit on the server hosting the master git repo. You don't provide any data on this to help with diagnosis, but if you're on a slow/cheap server, I'd start looking at possible IO contention.

Do all the web servers really need to pull at the exact same time? If not, just add a bit of "fuzz" to the script by having each sleep for a random number of seconds (say between 0 and 15) before doing the pull.

If that's not an option, try doing a manual git pull from your workstation (to a repo that's at in the same state as the web servers) before kicking off the deployment script. This will prime the server's disk cache and hopefully it will be able to serve most of the pulls out of cache instead of hitting the actual disk.

share|improve this answer
    
Thank you for the response. As it is, I always do a pull from the host server before sending the requests to the webservers, so it is probably already in memory. When I tried sending the pull requests one after another, it was still slow and the last ones still timed out. The reason I want them to happen at once is so that all servers get the newest code at the same time, with 0 downtime. –  Max May 3 '12 at 14:38
1  
Well, sounds like you need to put some work into having your load balancer be able to take servers out of rotation while they're being updated. Honestly, you need to start gathering some statistics on dish, CPU, memory, and network while this is happening. Once you do that, the problem should become clear. –  EEAA May 3 '12 at 14:45

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.