RAMの重要性は確立された事実ですが、MySQLによるCPUの使用に関しては、コアとマルチスレッドの重要性に関する資料はほとんどありません。MySQLを4コア対6コア対8コアなどで実行することの違いについて話しています。
ストレージエンジンによってCPUの使用方法は異なりますか?
RAMの重要性は確立された事実ですが、MySQLによるCPUの使用に関しては、コアとマルチスレッドの重要性に関する資料はほとんどありません。MySQLを4コア対6コア対8コアなどで実行することの違いについて話しています。
ストレージエンジンによってCPUの使用方法は異なりますか?
回答:
MySQLに関しては、2つの基本的なカテゴリに分類されることを除いて、ストレージエンジン間の比較はありません。
MySQLは複数のストレージエンジンの使用を特徴としています
リストされているストレージエンジンに関しては、ACID準拠のエンジンはInnoDBとNDBのみです。なぜこれが重要なのですか?2つの理由:
MySQL 5.5のInnoDB、InnoDBプラグイン)、およびPercona ServerのXtraDBには、複数のコアにアクセスするために設定できるオプションがあります(Percona Serverはこれまでよりも長く行っています)。実際、Perconaは、MySQLソースコードの新しいGAリリースごとに、特にInnoDBのパフォーマンス強化のために約30,000行のコードを挿入します。(MySQL 5.1.38以降)マルチコア操作のためにInnoDB内で実行するために、Oracleが独自のシンクタンクから独自の拡張機能を組み込んだことは確かです。
行/ページのロックと連動してデータに対してMVCCを実行する必要があるため、トランザクションパフォーマンスを計測、測定、および構成できるようになりました。
複数のコアの使用について学んだことが1つあるとすれば、InnoDBをすぐに使用するだけでなく、InnoDBを効果的に調整する必要があるということです。
更新2011-09-20 08:03 EDT
すべてのコアから恩恵を受けるInnoDBに関しては、物事を永続的に保つ必要があります。コアは、データベースサーバーの他の問題(OS、ディスク、メモリ、アプリケーション、監視など)にも対応する必要があります。予算が控えめな人のために、多くの場合、データベースサーバーがNFS、Muninからの監視、JBoss、PHPのアプリサポートを提供する傾向があります。MySQL、より具体的にはInnoDBでより多くのコアを使用する場合は、データベースサーバーをMySQL専用にし、OS /ディスク/メモリはMySQLのみに対応する必要があります。このような観点から、InnoDBは疑いなくより多くのコアに関与します。
InnoDB Pluginについては、MySQLでより良いInnoDBを使用するための初期のイニシアチブを示すために言及されました(ええ、Oracle。申し訳ありませんが、まだ舌を出していない)。より多くのコアアクティビティを呼び出す新しい変数がMySQL 5.1.38から明らかになりました。
たとえば、innodb_read_io_threadsおよびinnodb_write_io_threads(両方ともMySQL 5.1.38以降)は、指定された数のスレッドを読み取りおよび書き込みに割り当てます。デフォルトは4で、最大は(4から64)が異なっている64デフォルトおよび最大の設定であることを示している、あなたがそれを設定するようInnoDBがマルチスレッドと集中的なコアの通りです!
InnoDBでより多くのコアにアクセスするためのMySQLコミュニティのニーズへの対応は、Perconaが主導しました。その結果、MySQLはそれに追従し始めました。Oracle(yuck)がより多くのコアアクティビティに必要な改善を行ったことを認めなければなりません。
コアを使用したストレージエンジンの話は、初心者にとって誤解を招く可能性があります。プログラムが十分にマルチスレッド化されている場合、オペレーティングシステムは可能な限り多くのコアにわたってプログラムをスケジュールします。
CPUスケーリングを制限する特定の問題は、内部ロックコード(mutexes)に競合があり、スレッドが同時に実行されるのをブロックする場合です。すべてのストレージエンジンにはミューテックスが必要になりますが、MyISAMには確かにいくつかのホットエンジンがあります。
ミューテックスの競合を1秒間無視して、メインの質問に戻ります。多くのコアを持つことはどれほど重要ですか?-
ユーザーが直面するリクエストに応えるワークロード用のコアがたくさんあるのが好きです。多数あると、クエリ時間のばらつきを減らすことができます。これは、スーパーマーケットに12の通路が開いているのに対して、ちょうど2つ並んでいるようなものだと考えてください。
更新:垂直スケーラビリティ(マルチコア)が重要である理由に関するブログ記事を書きました。