SCGIでrailsが速くなった!
コメントで教えていただいたSCGIを導入したら、劇的に速くなりました!
ありがとうございます!>ささださん、id:zhestoさん
#ささださんのコメント日時に正直びびりますた。
やはりCGI呼び出しの負荷が大きすぎたようです。
ていうか、性能低すぎ。玄箱(無印)。
id:zhestoさんのblogからたどって
http://bohnsack.com/2005/12/20/scgi-and-rails-on-apache-13x/
を見ながら設定しました。
ウチの玄箱はDebian/sargeを入れてるので、最初SCGIだけは
apt-get install libapache-mod-scgi
とインストールしたんです。
で、httpd.confを設定してから
/etc/init.d/apache restart
したら
Configuration syntax error detected. Not reloading. Syntax error on line 1105 of /etc/apache/httpd.conf: Invalid command 'SCGIMount', perhaps mis-spelled or defined by a module not included in the server configuration
となってなぜか失敗するんです。
色々不毛な調査時間の後、mod_scgiのバージョンを確認してみたらversion1.2.1でした。古っ。
power-pc版のDebianパッケージって結構こういうことあるんですよね...。orz
というわけで、きちんと前述のサイトのリンクから最新(1.9)ソースを持ってきてapxsコマンドでインストールしたところ、無事に動作したというわけです。
メモ
なお、実際の設定として
/etc/apache/modules.confに
LoadModule scgi_module /usr/lib/apache/1.3/mod_scgi.so
の1行を追加して、/etc/apache/conf.d/scgi.confという新規ファイルに
<VirtualHost xxx.xxx.xxx.xxx> ServerAlias YYYYYYYY DocumentRoot /XXX/YYY/XZZZ SCGIMount / 127.0.0.1:9999 <locationmatch \..+$> SCGIHandler Off </locationmatch> <directory "/XXX/YYY/ZZZ"> Options +FollowSymLinks Order allow,deny allow from all </directory> </VirtualHost>
と設定しました。
rails側は前述のサイト通りの方法でセットアップしました。
↓というコマンドでSCGIをコントロールするわけですね。
$ scgi_ctrl start $ scgi_ctrl status $ scgi_ctrl stop