rails2.3/postgresql/resque
データベース サーバーのディスク I/O を使い切っていたため、アプリのシャーディングに Octopus を使用するように切り替えました。10 個のデータベースがあり、それぞれに複数のシャードがあります。(シャードにはスキーマ検索パスが含まれます)。
複数の顧客にまたがる一部のプロセスは非常に低速です。
コードの構造は次のとおりです。
User.each do |u|
Octopus.using(u.shard.to_sym) do
update data
end
end
問題は、Octopus がデータベース接続を頻繁に開いたり閉じたりしていることだと思われます。
これがタコの仕組みですか?データベース接続のプールを保持できますか?