Basant Kumar kukreja wrote: > +1 for production ready configuration. > > Just a note that it is sometimes difficult to come up with a common production > config for different kind of servers. For example, ServerLimit and MaxClients > ServerLimit 2048 > MaxClients 2048 > > For a larger system like CMT systems with more memory, these tunables can be > higher. Ideally it should be self tunable. For example, in Sun Web Server, we > tune few settings (if unspecified by user) based on Number of CPUs, memory > etc. >
I certainly agree it is difficult to come up with a common production config ;) note that I'm not aiming for complete production-ready configs; instead, I'm aiming for an alternate config framework which contains the bare necessities, along with guidance on how to enable the desired web server features beyond static files (start with a simple base, add just what you need) > For my above example, if ServerLimit is not specified by user then Webstack's > apache can define these values based on the system it is running on. In > longer > term, we can work on a separate patch, which tunes some configuration > dynamically. > > MPM and keep alive settings are the most common setting which should be tuned > dynamically unless user wants to override it. > > Most of the MPM settings should be derivable from MaxClients. Prefork example: MaxClients xxx <- user sets this MaxSpareServers auto <- some meaningful percentage, such as 15%, of MaxClients (users sometimes modify MaxClients and forget to change this, resulting in bogus config) MinSpareServers auto <- 5% of MaxClients perhaps? StartServers auto <- same as MinSpareServers How do you see MaxClients changing dynamically/automatically? If you're considering raising it, wouldn't there still need to be a way for the admin to declare how much of his/her machine Apache could own? (MaxClients is a very rough way for the admin to specify that, but OTOH it very easy for Apache to maintain compliance) The event MPM should resolve the primary keepalive consideration (reducing keepalive timeout to a value low enough that connections in keepalive don't consume too many resources) since it doesn't consume worker threads for keepalive, but mod_php and some other modules have an affinity to prefork, so dynamic timeout determination would be cool. > For CMT systems, we can have separate include files too. (Where configuration > for built-in crypto card can be included) > BTW, is there documentation anywhere for tuning Apache for Sun systems, such as for different crypto cards?