1

適度に大きなサーバー (2 x クアッドコア Xeon、24 GB RAM、RAID10 の 2.5 インチ 10k ディスク) で、いくつかのかなり大きなテーブル (数億行、50 GB) を含む中規模 (350 GB) データベースを実行しています。かなり遅い挿入を取得しています (たとえば、1 行の単純な挿入に 90 秒かかります!)。

innodb_buffer_pool_size は 400MB に設定されていますが、これは通常、この種のセットアップには小さすぎます。ただし、ホスティング プロバイダーは、ZFS で実行する場合、これは無関係であるとアドバイスしています。彼は正しいですか?

( https://dba.stackexchange.com/questions/1975/is-tuning-the-innodb-buffer-pool-size-important-on-solaris-zfsでの二重投稿についてお詫びしますが、方法がわかりません大きな聴衆がそこにいます!)

4

3 に答える 3

2

ホスティング プロバイダーが正しくありません。ZFS で MySQL を実行する場合、さまざまな調整が必要ですが、削減はinnodb_buffer_pool_sizeその 1 つではありません。ZFSでMySQLを実行するというテーマで記事を書き、しばらく前に講義を行いました。O_DIRECTinnodb_buffer_pool_sizeは ZFS では「キャッシュしない」という意味ではないためprimarycache=metadatadatadir. 他にも最適化を行う必要があります。これについては、記事と講義のスライドを参照してください。

于 2020-06-05T21:27:58.783 に答える
1

私は依然として innodb_buffer_pool_size を 400M よりはるかに大きく設定します。理由?InnoDB Buffer Pool は、頻繁にアクセスされるテーブルに必要なデータとインデックス ページを引き続きキャッシュします。

次のクエリを実行して、推奨される innodb_buffer_pool_size を MB 単位で取得します。

SELECT CONCAT(ROUND(KBS/POWER(1024,IF(pw<0,0,IF(pw>3,0,pw)))+0.49999),SUBSTR('KMG',IF(pw<0,0,IF) (pw>3,0,pw))+1,1)) recommended_innodb_buffer_pool_size FROM (SELECT SUM(data_length+index_length) KBS FROM information_schema.tables WHERE engine='InnoDB') A,(SELECT 2 pw) B;

このクエリの結果またはインストールされている RAM の 80% (この場合は 19660M) のいずれか小さい方を使用するだけです。

また、innodb_log_file_size を InnoDB Buffer Pool サイズの 25% に設定します。残念ながら、innodb_log_file_size の最大値は 2047M です。(2G の 1M 不足) したがって、推奨設定の innodb_buffer_pool_size の 25% は 4915M であるため、innodb_log_file_size を 2047M に設定します。

もう 1 つの推奨事項は、ACID 準拠を無効にすることです。innodb_flush_log_at_trx_commit には 0 または 2 を使用します (ACID 準拠をサポートするデフォルトは 1 です)。これにより、クラッシュ時に最大 1 秒分のトランザクションが失われるリスクがあるため、InnoDB の書き込みが高速になります。

于 2011-03-29T17:54:29.247 に答える
0

まだ読んでいない場合は、slow-mysql-insertsを読む価値があるかもしれません。また、この問題に関するmysqlドキュメントへのリンク-特に、大きなテーブルに複数の挿入を行う場合のトランザクションの検討に関して。

より関連性の高いのは、特にバッファープールサイズを考慮したinnodbとzfsのパフォーマンスに関するこのmysqlの記事です。

見出しの結論は次のとおりです。

InnoDBを使用すると、ZFSパフォーマンス曲線は、「バッファープールサイズを低く設定し、ZFSにデータバッファリングを処理させる」という新しい戦略を提案します。

テーブルのインデックスの数や複雑さなど、さらに詳細を追加することをお勧めします。これにより、明らかに大きな違いが生じる可能性があります。

これは個人的な経験からではなく、かなり一般的なアドバイスであるとお詫びします。私はzfsを怒りで実行していませんが、これらのリンクのいくつかが役立つことを願っています。

于 2011-03-29T16:23:03.190 に答える