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 am using nginx along with php-fpm to server a busy mysql-based site. Currently I am using keepalive_timeout = 5, however I have no clear idea about how to optimally adjust it. So appreciate your hints.

share|improve this question
add comment

1 Answer 1

up vote 4 down vote accepted

What do you need to adjust it to do, or rather: are you seeing any problems with having it set how you do?

There isn't a good one-size-fits-all answer; if most client browsers are able to load all the resources on a page in 5 seconds then 5 seconds is just fine, but it completely depends on your application's needs - if your nginx server were serving as a reverse proxy for Exchange ActiveSync, for instance, you'd want it cranked all the way up to half an hour.

share|improve this answer
    
Well, I am trying to minimize the server load (which is quite high at pick times), and I guess optimizing keepalive_timeout can partially contribute to this goal. Apart from that it is just healthy curiosity :) –  alfish Nov 16 '11 at 22:29
1  
Sure - so, pretty much "as low as possible without kicking most clients off before they load the page" - so if your pages load in under a second for most of your clients, then a 1 second timeout will be fine. But, unless your timeout is much, much higher than 5 seconds, then it's unlikely that it's a major cause of server load. –  Shane Madden Nov 16 '11 at 22:34
    
That's the tricky point. How can I determine the page load time, given the difference in pages load time (some are heavier than others),visitor's connection speeds, etc. –  alfish Nov 16 '11 at 22:40
    
Just ballpark it. A few seconds one way or another is unlikely to make any substantial difference in load, so feel free to estimate high - but then again, a new build of a TCP connection (even with an SSL handshake, if applicable) for a slow loading client isn't going to make a large difference in their overall loading speed. –  Shane Madden Nov 16 '11 at 22:46
    
@ShaneMadden, that 5 seconds are not the lifespan of the connection, but only a timeout during which server waits for another request up to keepalive_requests. So it is not important how much time it takes for the full page to load, just for the html until browser start fetching images/css... BTW the max. time connection is kept open is almost keepalive_timeout*keepalive_requests –  Marki555 Jan 30 at 10:19
add comment

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.