[前][次][番号順一覧][スレッド一覧]

mysql:14765

From: Mikiya Okuno <Mikiya Okuno <Mikiya.Okuno@xxxxxxxxxx>>
Date: Tue, 10 Mar 2009 10:55:20 +0900
Subject: [mysql 14765] Re: MySQLクラスタの性能についての質問

おはようございます。

MySQL Clusterの性能がデータノードの追加によってスケールするかどうかは
処理の内容やシステム構成に因ります。

まず言えるのは、MySQL Clusterは主キーの内容によってデータを格納する
ノードを分けているので、主キーによる参照や1行だけの更新はとても高速であり、
ノードの台数を増やすことによってスケールするということです。

そうでない場合は注意が必要です。特に範囲検索やインデックスを利用しないスキャンでは
インターコネクトがボトルネックになって一定以上スケールしない可能性があります。

MySQL Clusterでは、SQLノードがトランザクションを開始すると、
一つのデータノードをTC(トランザクション・コーディネータ)として選択し、
そのトランザクションが終了するまで同じTCを経由してリクエストを送信します。
主キーによる参照や更新の場合でも、一回のトランザクション内で連続して
何度も処理を行うような場合には、TC上にデータが存在しない場合があり、
その場合はデータノード間で通信する必要があるので上記と同じく
インターコネクトがボトルネックになる可能性があります。

この問題は、JOINやサブクエリにおいて顕著になります。ただしMySQL 6.0からは
BKAという最適化手法が追加されるので、これらのボトルネックは多少マシになるでしょう。
(MySQL 6.0 + NDB 6.xという組み合わせという意味です。)

上記のような場合、インターコネクトのボトルネックを解消すればスケールします。
多数のノードを接続しないといけない場合には、SCIや10GbEなど高速な
インターコネクトを使いましょう。

インメモリ型ではなくディスクテーブルを利用する場合、データノードが増える
ことによるメリットが大きいです。ディスクはメモリやネットワークよりずっと
低速であるため、ディスクへの更新や参照がノード間に分散すれば、処理性能が
上がる可能性があります。

まとめると、次のような場合に性能が上がりやすいことになります。
・細かい処理が大量に発生する。
・クエリで主キーを指定している。
・高速なインターコネクトを利用している。
・ディスクテーブルを利用している。

次のような場合にはスケールしない可能性があります。
・複雑なクエリを処理する。
  ×JOIN、サブクエリ
  ×一度に大量に更新するトランザクション
・範囲検索など、主キー(ハッシュ)を利用しないクエリが多い。
・インターコネクトが遅い。

ただし、スケールしないと言っても十分実用に耐えるレベルですので、
Active/Activeで使いたい場合や、手軽にHA化したい場合にはMySQL Clusterは便利です。

というわけで、システムにかけられる予算やアプリケーションの特性をよく考慮して
利用する場合を見極めましょう。
--
Mikiya Okuno, MySQL Support Engineer
Sun Microsystems KK, Tokyo, Japan
http://www-jp.mysql.com/

On 10/03/2009, at 10:22 AM, Hiroyuki Ogawa wrote:

> いつもお世話になっております。
> 現在、MySQLクラスタの性能について調べています。
> まず、調査としては複数のPCを用意してそれぞれのPC1台に
> 管理ノード、データノード、
> SQLノードをすべてインストールします。
> 1台目で構成したとき1秒当たりinsertの処理件数は2台、3台、4台で
> 構成した場合と比較して、性能は上がるのでしょうか。
> 各PCのOSはすべてLinux(CentOS5.2)です。
>
> selectではPC(Linux)とPC(Windows)を接続してWindows
> PCで1秒間当たり何件selectできるかを調査しています。
> このときもPC(Linux)の台数を2台から4台に増やした場合、
> 性能があがるかを調べています。
> MySQLクラスタはデータノードなどが増えると性能は
> あがるのでしょうか。
> それとも、ある台数に達すると性能は収束するのでしょうか。
>
> 分かりにくく長い質問になってしまいましたが、ご教授を
> お願いいたします。
>
> 使用するMySQL Clusterのバージョンは6.3.20を使用します。
>
> 以上、よろしくお願いいたします。


[前][次][番号順一覧][スレッド一覧]

   @ 14763 2009-03-10 10:22 [Hiroyuki Ogawa <eng1] MySQLクラスタの性能についての質問       
     14764 2009-03-10 10:35 ┣[Tetsuro IKEDA <te.ik]                                       
->   14765 2009-03-10 10:55 ┗[Mikiya Okuno <Mikiya]                                       
   @ 14766 2009-03-10 13:46  ┗[Hiroyuki Ogawa <eng1]                                     
     14767 2009-03-10 14:00   ┗[Mikiya Okuno <Mikiya]                                   
   @ 14768 2009-03-10 15:43    ┗[Hiroyuki Ogawa <eng1]                                 
     14769 2009-03-10 15:56     ┗[Mikiya Okuno <Mikiya]                               
   @ 14770 2009-03-10 18:55      ┗[Hiroyuki Ogawa <eng1]                             
     14771 2009-03-10 22:03       ┗[Mikiya Okuno <Mikiya]                           
   @ 14772 2009-03-10 23:14        ┗[Hiroyuki Ogawa <eng1]