2009年12月11日

[mysql 15099] Re: [MySQLクラスタ] SQLノードに当てるメモリ量

奥野です。

宝田さん、初めましてこんばんは。

takarada623@xxxxx wrote, On 11/12/09 9:19 PM:
> ■下記考察は正しいでしょうか、また、SQLノードのメモリ量算出に関して教えて
> 頂きたく思います。
>

> データノードは、メモリに関してはレコード数・容量に依存、
> ディスクはREDOログの読み書きが発生するため高速なものを考えています。
>
> SQLノードですが、データノードへのクエリの中継及び
> 結果のマージのコストが高くつくと考えられるため、CPUマターと思っています。
>
> ただ、MYSQLはメモリを増やすのが一般的です。
> MYSQLクラスタの場合、SQLノードのメモリ量は、どの程度必要でしょうか?
> またSQLノードのチューニングに関して情報が少なく、教えて頂ければ幸いです。

MySQL Clusterの場合、SQLノードにはそれほど大量のメモリは必要ないです。
なぜなら、InnoDBバッファプールのようなバッファがないからです。
(データは全てデータノードですし。)

なので、それほど接続数が多くなければmysqld用に1GBもあれば十分過ぎだったりします。
デフォルトの設定なら、「最大接続数 * 2.5MB + α」程度で良いでしょう。

セッション用のメモリとしては、デフォルトではsort_buffer_size=2Mが一番食います。
ただし全てのセッションがソートするわけではないので、実際に利用されるのは
もっと少ないかも知れません。各セッションどの程度メモリを消費するかは
アプリケーションの負荷のタイプによりますので、負荷テストされることを
おすすめします。

また、SQLノードはひとつのホストで単一のmysqldを利用して動かすよりも、
複数のmysqldを(ポートやデータディレクトリを変えて)走らせたほうが
内部でロック競合が起こりにくい分性能が出るので、もし手間でなければ
そのように設定するのもアリだと思います。

--
奥野 幹也
http://www.google.com/profiles/mikiya.okuno
http://nippondanji.blogspot.com/
http://twitter.com/nippondanji


投稿者 xml-rpc : 2009年12月11日 22:17
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/91333
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。