清水川です。 07/10/11 に Atsushi Shibata<[メールアドレス保護]> さんは書きました: > 柴田です。 > > SQLObjectの古いバージョンで,SQLiteを使っているときにコネクションでス > レッド競合の問題が出たことがありました。そのときは,SQLObjectのコードを > 書き換えて,「コネクションをプーリングしないで毎回接続する」ようにして対 > 処しました。私だったら同じ方法を使うでしょうね。 > 「コネクションプーリング"しない"」というのはMySQLを使ったWebシステムを作 > る際の定石と言える対策のようです。MySQLの場合,コネクションをプーリング > するより毎回接続する方がパフォーマンスが上がるんだそうです。
MySQLでの定石、ということで「mysql コネクション プール」で検索すると 色々と情報が出てきますね。 今回頂いたヒントを元に調べ直してみたら、SQLObjectのマニュアルに コネクションプーリングをOFFにする方法が記載されていることに気づきました。 http://www.sqlobject.org/SQLObject.html#id42 disabled pooling (by setting conn._pool = None) この記述に従って、さっそくプーリングしないように設定して実証実験して みたところ、コネクションはすぐ解放され、page/秒も20%ほど向上しました。 abでの簡易的な測定ですし、環境によるところもあるとはおもいますが、 今対象となっている環境では効果的な結果が出ました。 ありがとうございます。 # ymasudaさんの翻訳ドキュメントは読んでいたのですが... > ちなみに,PostgreSQLの最近のバージョンでは,MySQLよりずっと素早くDBへの > 接続ができるようになっている,という客観的なデータがあるようです。 > または,SQLRelayのようなものを間に挟む,という対策もあり得ます。 なるほど。今回はSQLRelayは必要なさそうですが、クライアント数が増えたら 検討してみます。 > なお,この問題に対処すべき「実装のレイヤー」におけるレスポンスビリティは > TurboGears側にあると思います。SQLObjectのようなO/Rマッパーは,コネクショ > ンプーリングまで関知すべきでないと思うので,SQLObject側の問題とは言えな > いと思います。 たしかにSQLObjectは選択肢を提供してくれていたので、どう使うかはTG側 で決めるべき事ですね。 このあたりの、SQLObjectやMySQLを使う上での定石っぽいところはもうちょっと 勉強してみます。 ありがとうございました。 -- 清水川.jp --~--~---------~--~----~------------~-------~--~----~ このメッセージは、次の Google グループへの参加を申し込まれたことを確認す るために送信されました。 Google グループ "turbogears-ja" グループ。 このグループに投稿するには、次の宛先にメールを送信してください。 turbogears-ja@googlegroups.com このグループから退会するには、次へメールをお送りください。 [メールアドレス保護] その他のオプションについては、次の URL からグループにアクセスしてくださ い。 http://groups.google.co.jp/group/turbogears-ja?hl=ja -~----------~----~----~----~------~----~------~--~---