1

各ノードに設定がある5つのリーフノードがあります

maximum_memory = 51200m
maximum_table_memory = 40960m
So total leaf table memory = 200GB
and total  Memsql Memmory = 250 GB

TPCH の 100GB のデータをロードしようとしていますが、ロードできません。LineItem テーブルの読み込みに失敗しました。そのカウントは 0 です。

以下は、memsql ops のステータス テーブルの図です。リーフ テーブル メモリの場合、90GB から 108GB の間で変化します。

ここに画像の説明を入力

ここに画像の説明を入力

サイズが 74 GB の LINEItem テーブルを再度ロードしようとすると、ステータス タブに、memsql が使用可能なメモリをすべて消費していると表示されます ここに画像の説明を入力

そのため、2 倍以上のメモリ (200GB) を設定した後でも、Memsql は 100GB のデータをロードできません。ここで何が問題なのですか?いくつかの明らかなパラメータが欠けているようです。正しい設定を教えてください。

4

1 に答える 1

1

通常、行ストア テーブルにデータを格納するには、元のデータ サイズよりも多くの領域が必要になります。これは、インデックスやオーバーヘッドなどによって消費される追加の領域のためです。これは、MemSQL やその他のデータベースにも当てはまります。領域の使用量を減らすには、たとえば、スキーマ内のいくつかのインデックスを削除することを検討してください。または、正しいデータ型を使用していることを確認することもできます。たとえば、int の代わりに bigint を使用するとスペースも浪費されます。

MemSQL が実際にデータに使用している容量に基づいて、必要な容量を見積もることができます。上記の情報から、MemSQL は 74GB の未加工データを保存するために約 200GB を使用しているように見えるため、100GB の未加工データの場合、約 270GB に乗算されます。データ。

MemSQL がメモリを使用している目的の詳細については、[クラスタ] ページから Ops の個々の MemSQL リーフ ノードを表示し、メモリ使用量の情報を確認できます。

于 2015-12-17T16:12:29.810 に答える