Apache: December 2006 Archives
Make sure you set IPCCommTimeout to at least 45 to allow enough startup
time.
Set DefaultMaxClassProcessCount to 2 unless your benchmarks tell you to
change.
Set IdleTimeout to 3600 or higher since your only have 2 dispatch.fcgi.
Set ProcessLifeTime to a multiple of IdleTimeout.
Set MaxProcessCount > DefaultMaxClassProcessCount so you can use
mod_fcgid for other things than rails.
mod_fcgid religiously kills idle or old processes so keep IdleTimeout
and ProcessLifeTime to high values.
Here is an example 'starter' /etc/apache2/mods-enabled/fcgid.conf
AddHandler fcgid-script .fcgi
SocketPath /var/lib/apache2/fcgid/sock
IdleTimeout 3600
ProcessLifeTime 7200
MaxProcessCount 8
DefaultMaxClassProcessCount 2
IPCConnectTimeout 8
IPCCommTimeout 60
DefaultInitEnv RAILS_ENV production
If you have plenty of RAM, then increase DefaultMaxClassProcessCount to
about 2*CPU--assume each instance will eat 20-30MB RAM.
After updating ruby and ruby-on-rails, I got this following error in my error log:
Permission denied: mod_fcgid: couldn't bind unix domain socket /etc/httpd/logs/fcgidsock/
Solution: chmod 555 /etc/httpd/logs (this is a symlink to /var/httpd/logs)
