Owncloudがインストールされた仮想サーバーを実行します。現在、Owncloudには、現時点で開発されている方法で、ファイルをアップロードするたびにMySqlのオーバーヘッドが少し発生するという問題があります。
したがって、MySqlデータベースをできる限り良好に保つには、非常に重要です。非常に大きなinnodb_buffer_pool_size
最大4、5、またはそれ以上のギガバイト、はい、全RAMの80%まで最大70と言う人もいますね。
まあ、しかし、ほとんどの人はinnodb_buffer_pool_instances
それでは、私の状況を見てみましょう。仮想マシンのリソースは限られています。つまり、6400Gバイトの合計RAMであり、通常モードでは約3000です(libvirtによって処理されます)。したがって、innodb_buffer_pool_instances
が1以上の場合、または新しいMySqlサーバーのデフォルトの設定(8など)でそれを許可するということは、最悪の場合、たとえばinnodb_buffer_pool_instances = 4
およびinnodb_buffer_pool_size = 4
=> 4 * 4 =最大の状況で16GバイトのRAM使用。スワップディスクの使用状況が悪くなり、MySql innodbバッファのすべてのスワップ使用状況がパフォーマンスに影響します。
結論は簡単です。利用可能なバッファサイズは、少なくとも利用可能なRAMの約70%パーセントよりも小さくなければなりません。残りは、php、Apache、およびシステム自体に必要な場合があります。
それで、より良い決定は何でしょうか。可能なのは1つだけinnodb_buffer_pool_instances
が非常に大きいinnodb_buffer_pool_size
以上の小さいinnodb_buffer_pool_size
、したがってより多くのinnodb_buffer_pool_instances
必要に応じて同時に。
私のサーバーは最大で約10〜30人で使用されています。
このためのベストプラクティスは、リンクで非常に明確であると思います: https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_buffer_pool_instances
Innodb_buffer_pool_sizeの値が複数のGBにある場合、各インスタンスが少なくとも1 GBになるようにinnodb_buffer_pool_instancesを数値に増やすことができます。また、mysqlを実行している専用システムの場合-innodb_buffer_pool_sizeは、使用可能なシステムRAMに基づいて設定できます。 70〜80%の大まかなルールに正確に準拠しない場合があります。私はシステムRAMに基づいてこれの最適値を調査し、ブログの投稿の一部として利用できるinnod_db_buffer_pool_sizeを計算する計算機を構築しました: https://scalegrid.io/blog/calculating-innodb-buffer-pool-size-for-your-mysql-server /