開きすぎ。

昨日の記事の"Too many open files"問題、AP4R自体が原因じゃないみたい。アクティビティモニタで見てるとRailsを動かしてるRubyのプロセスがSQLiteのデータベースファイルを開いてるんだけど、アクションを一つ実行するごとに一つ、開いたDBファイルが増えてる。同じDBファイルを何度も開き直してるわけ。AP4Rで非同期実行すると、一度に大量のアクションが実行されるから問題が顕在化したらしい。普通にブラウザからアクション実行しても増えます。
なんかActiveRecordSQLiteサポート部分の問題のような気がしてきた。バックエンドをPostgreSQLに入れ替えれば解決しそう。ってことはMySQL使わずdisk storeで実行しても大丈夫かも。また、おそらくdevelopmentでの自動リロード*1に絡んでるから、SQLiteを使い続けたとしてもそもそもproductionじゃ発現しないだろう。

*1:ModelとかControllerを書き換えると、Mongrelの再起動無しに反映される機能