Rails3.1.3の話。 別DBにつなぐときの、ActiveRecordのestablish_connectionに気をつけろ。やつは1クラスごとに独自にdatabase.ymlのpool設定分のコネクションプールを作るぞッ。プールの意味ない!! マスターDB1台で運用しているときは全然問題ない。コネクションプールは大変賢く働いてくれる。だが、2台目を運用し始めたとき、安易にestablish_connectionでつなぐと簡単に too many connections で、落ちる。 たとえば、ワーカー10個で、establish_connectionで別DB「hoge_db」に接続することにしたクラスが10個あったとしよう。その別DBへの接続設定(database.yml)で 「pool: 5」 としたとしよう。 そしてワーカーを立ち上げたとき、hoge_dbへのコネクション数はみる