2

database.ymlで設定できる最大プールサイズはいくつですか?MysqlDbを使用しています。

24コアの32GBRAMマシンで20個のユニコーンプロセスを実行しています。

4

1 に答える 1

6

MySQLのデフォルト設定は100接続です。

MySQL5.5ページから

LinuxまたはSolarisは、500〜1000の同時接続を定期的にサポートでき、数ギガバイトのRAMが使用可能で、それぞれのワークロードが低い場合、または応答時間が要求されない場合は、10,000までの接続をサポートできるはずです。そのプラットフォームで使用されるPosix互換性レイヤーのため、Windowsは(開いているテーブル×2 +開いている接続)<2048に制限されています。

自分で理解する必要があります。DBへの同時接続がボトルネックになるとは思いません。

Rails ConnectionPoolから:

接続プールは、スレッドアクセスを限られた数のデータベース接続に同期します。基本的な考え方は、各スレッドがプールからデータベース接続をチェックアウトし、その接続を使用して、接続を再度チェックインすることです。ConnectionPoolは完全にスレッドセーフであり、2つのスレッドが同時に接続を使用できないようにします。 、ConnectionPoolの契約が正しく守られている限り。また、接続よりもスレッドが多い場合も処理します。すべての接続がチェックアウトされ、スレッドが接続をチェックアウトしようとすると、ConnectionPoolは他のスレッドが接続をチェックインするまで待機します。

したがって、すべきでない唯一のことは、mysql構成よりもRailsプールサイズでより多くの接続を持つことです。

于 2013-03-07T10:49:35.447 に答える