マルチスレッド Web アプリケーションpool_size
の呼び出しでの妥当なデフォルトは何ですか?ZODB.DB
実際のデフォルト値のままにしておくと、データベースと対話するハンドラーをナビゲートするのが私だけであっても、7
いくつかの接続が得られます。WARNING
高すぎる数値を設定することはできますか? 正確に何を設定するかを決定する要因は何ですか?
マルチスレッド Web アプリケーションpool_size
の呼び出しでの妥当なデフォルトは何ですか?ZODB.DB
実際のデフォルト値のままにしておくと、データベースと対話するハンドラーをナビゲートするのが私だけであっても、7
いくつかの接続が得られます。WARNING
高すぎる数値を設定することはできますか? 正確に何を設定するかを決定する要因は何ですか?
プール サイズは「ガイドライン」にすぎません。そのサイズを超えると、警告がログに記録されます。2 倍の接続数を使用すると、CRITICAL
代わりにログ メッセージが登録されます。これらは、アプリケーションで使用している接続が多すぎる可能性があることを示しています。
接続を閉じると、プールは保持される接続の数をプール サイズまで減らそうとします。
アプリケーションのスレッドの最大数に設定する必要があります。Tornado の場合、ほぼ排他的にスレッド化するのではなく、非同期イベントを使用すると私は信じていますが、それを判断するのは難しいかもしれません。Tornado で構成可能な同時接続の最大数がある場合は、プール サイズをその数に設定する必要があります。
ただし、アプリケーションが数百または数千の同時接続に拡張された場合、ZODB がどのように機能するかはわかりません。これまでのところ、複数のプロセスやマシンにまたがる最大 100 程度の同時接続でしか使用していません (ZEO または RelStorage を使用して、これらのプロセス間で ZODB を提供しています)。
これらの接続のほとんどが読み取りのみであれば、問題ないと思います。スケーラビリティに関する限り、ZODB の弱点は同じオブジェクトに同時に書き込みを行うことです。