2016-10-17 11 views
0

多くの挿入操作(それぞれ32GのRAMを持つ30個の葉がある)の後で、2-3クラスタの葉でホットに実行されることに気がついた後、Data Skewを調べました。基本的に私たちのメモリは、クラスタの閉塞を引き起こすノードでほぼ100%に達します。それらのリーフを再開しても、メモリは解放されませんでした(テーブルメモリが最大割り当てサイズに達する)。その段階では、2-3枚の葉にもっと多くの記憶を割り当てていました。しかし、これは望ましいアプローチではありません - それは絶望的な回避策でした。奇妙なのは、これらの2〜3枚の葉がメモリ不足の場合を除き、残りの葉は約20〜30%のメモリ消費量であるということです。memsqlの行のスキューとメモリのスキューの値

これをチェックして、これらのクエリを実行すると、row_skewの値はすべて<ですが、memory_skewの値は40%を超えるものがあります。

私はチェック、改善、最適化する必要があるものがあるのだろうかと思っていましたか?

答えて

0

可変長サイズのデータ​​型(varcharなどの文字列など)があり、一部のパーティションにはさらに大きな文字列が含まれているというスキューがあるため、スキューは低くなります。

最初に、特定のフィールドが非常に歪んでいるかどうかを調べることができます。たとえば、partition_id()によってgroupからselect partition_id()、avg(length)のようなものを探すことができます。次に、データに予期しない問題があるかどうか、またはシャードキーを変更する必要があるかどうかを調べたい場合があります。

0

メモリ使用量の高いノード(SHOW CLUSTER STATUSまたはEXPLAIN CLEAR ORPHAN PARTITIONS)の孤立したパーティションを確認します。

関連する問題