OLTP DBのハードウェア仕様
ソフトウェア仕様
私の優先事項は、データの整合性/保護とそれに続くパフォーマンスです。
「Percona Server」という言葉を頭に置いたとき、私に最初に飛びつくのは、「DBサーバーには複数のCPUがありますか?」最近では、それは当たり前のことです。残念なことに、ほとんどの人はMySQLまたはPercona Serverを構成してこれらの複数のCPUを呼び出すことを忘れています。
MySQL 5.1とInnoDB 5.1プラグイン、MySQL 5.5、Percona Serverには、スレッドを増やすオプションがあります。これらのオプションと、調整したい他のInnoDB機能を以下に示します。
innodb_thread_concurrency InnoDBが開いたままにできる並行スレッドの数の上限を設定します。これに設定する最適なラウンド数は、(2 X CPUの数)+ディスクの数です。 2011年5月に行ったPercona NYC Conferenceから直接学んだように、これを0に設定して、実行している環境に最適なスレッド数を見つけるようにInnoDBストレージエンジンに警告する必要があります。
innodb_concurrency_tickets は、並行性チェックを免除できないスレッドの数を設定します。この制限に達すると、スレッドの同時実行チェックが再び標準になります。
innodb_commit_concurrency は、コミットできる同時トランザクションの数を設定します。デフォルトは0なので、これを設定しないと、任意の数のトランザクションを同時にコミットできます。
innodb_thread_sleep_delay InnoDBキューに再び入る前にInnoDBスレッドが休止できるミリ秒数を設定します。デフォルトは10000(10秒)です。
innodb_read_io_threads および innodb_write_io_threads (両方ともMySQL 5.1.38以降)は、指定された数のスレッドを読み取りと書き込みに割り当てます。デフォルトは4で、最大は64です。
innodb_replication_delay innodb_thread_concurrencyに達した場合、スレーブにスレッド遅延を課します。
innodb_read_ahead_threshold 非同期読み取りに切り替える前に、設定されたエクステント数(64ページ[ページ= 16K])の線形読み取りを許可します。
私がもっと多くのオプションに名前を付ければ、時間は私を逃れるでしょう。それらについては MySQLのドキュメント で読むことができます。
ギアをRAIDに切り替える: RAID10に固執してください。他の冗長構成、特にRAID5を維持する方が簡単です。 。また、RAIDカードのファームウェアが最新であることを確認してください。そうしないと、RAIDファームウェアがOSカーネルと競合して、ディスクがクラッシュしたり、全体的なスループットが低下したりする可能性があります。
はどうかと言うと Is ext4 ok or should I create a separate xfs volume for the data?
、ext3はファイルごとに2TBの最大サイズ制限を設定することに注意してください。 TBのデータを処理していない場合は、ext3またはext4を使用して汗を流さないでください。
MysqldはOSと競合しないため、個別のデータボリュームはディスクパフォーマンスを向上させます。