2011-12-29 20 views
7

unicornのデータベース接続プーリングの効果を説明する文書が見つかりません。本当にユニコーンレール用のDB接続プールが必要ですか?

Unicornは複数のワーカープロセスをフォークします。私はpreforkを設定しました。作業者間でデータベース接続を共有しないことが重要です。フォーク後にdb接続をリセットします。

私のレールアプリケーションにはサーバごとに8人のワーカーがあり、database.ymlのプールサイズは5です。次に、mysqlへの45の接続を確認しました。

各ワーカーは、一度に1つの要求を処理するシングルスレッドです。 SQLクエリがブロックされているはずです。他の4つの接続は役に立たないと思われますか?パフォーマンスを向上させるために、プールサイズを1に設定できますか?

答えて

7

各ワーカーは一度に1つの要求のみを処理できるため、各ワーカーは一度に1つの接続しか使用できず、さらに接続しても何も得られません。プールサイズを1に設定すると、各Unicornワーカーは1つの接続を開く必要があります。パフォーマンスが大幅に向上することはほとんどありませんが、オープンな接続を少なくすることでリソースを節約できます。

関連する問題