web-dev-qa-db-ja.com

Cassandra:ストレージサイズを増やし、CPUを増やし、RAM

私はCassandraノード構成の推奨アーキテクチャを通過しました!ノードに推奨されるハードウェアインフラストラクチャに応じて、

RAM: 16-32 GB、
ストレージ: 500GB-1TBおよび
64ビット[〜#〜] cpu [〜#〜] 8コア

datastaxドキュメントは言う

"Cassandra 1.2以降の最大推奨容量は、ノードあたり3〜5 TBです。"

私は重い書き込みシステムを持っています、毎秒10Kレコード、最初のデータストレージ要件は72TBであり、ノードあたり1TBを使用する場合、ほぼ80ノードが必要になります(オーバーヘッドを考慮してください)。目的はノードを下げることです。各ノードにデータストレージ容量を追加して数を増やします。

私の質問は
1。ドキュメントによると、16-32 GBのRAMは500-1TBのデータロードで正常に動作します。そのため、ノードごとに3-5TBのディスクスペースを追加する必要がある場合、 RAMおよびCPUも強化するには?
2。ストレージサイズとRAM + CPU

6
madiha malik

これがうまくいくかどうかは、データセットと負荷に依存すると思います。ストレージサイズとRAM + CPUの間に直接的な相関関係はありませんが、1TBから3TBへの3倍の読み取りと書き込みが予想される場合、それに対応する必要があると予想できます。より多くのRAMとCPUも使用しますが、ストレージを使用してCPUとRAMを1:1に増やす必要はほとんどありません(つまり、1 TBから3 TBにすると、ディスク、3x RAMは必要ありません)。一般に、I/Oがボトルネックになっていることがわかるので、高速ディスク(SSD)を使用することが最も重要です。

3TBのデータでノードを実行しましたが、あまり問題なく動作しました。実行する必要のある多くの調整があったので、調整の経験が豊富なチームの誰かがいない限り、Cassandraこれは難しい要件でない限り、お勧めしません。注意が必要なのは、RAMと、Cassandra jvmプロセスに割り当てるヒープの量です。 Cassandraの推奨される最大ヒープは8GBです。これは、ヒープが大きくなるとガベージコレクションがより破壊的になり(Azul Zingを使用しない限り)、フルGCの頻度が少なくなると、断片化が発生し、パフォーマンスに影響を与える可能性があります。一般に、回避できる場合は、8 [GB]を超えるヒープでJavaアプリケーションを実行することはお勧めできません。

Cassandraの新しいバージョンでは、ヒープから多くをネイティブメモリに移動できます。 1.2以降、ブルームフィルターと圧縮メタデータは、ヒープからネイティブメモリに移動されました。 2.1では ヒープからmemtablesを割り当てる を使用できるようになりました。これにより、より大きなデータセットを処理するのに役立つ場合があります。したがって、妥当な(8GB)ヒープを維持しながら、より多くのRAMを使用することで、より多くの利益を得ることができます。

常に、より小さなノードを持つ側に寄りかかることをお勧めします。これらの推奨事項には理由があり、主にCassandraがこのように使用されていることが証明されているためだと思います。 Cassandraはクラウドプロバイダーで優れた機能を発揮し、一般的なハードウェアを使用しているため、大きいノードよりも小さいノードの方が安価です。コストがかかる可能性があるのは運用ですが、puppetやchefなどの優れた構成管理ツールを使用すると、コストが削減されます。これは、専用のハードウェア設定で行うのも難しくなります。

私はそれのために誰の言葉も使わないことをお勧めします。EC2または別のクラウドプロバイダーのさまざまな構成でテストを見つけて、アプリケーションに最適なものを確認してください。負荷プロファイルとデータセットは、これが機能するかどうかを決定する要因になります。私はそれを十分に強調することはできません、さまざまな構成で多くのテストを行います!何かを決めたら、電源を切るのは(不可能ではありませんが)努力になります。 1つのアプリケーションに対して3つの異なるクラスター構成を経験した人として、これを強調することはできません:)。これをテストするために、Cassandra 2.1に含まれている 新しいストレスツール を使用すると、アプリケーションの動作を表す負荷シナリオを簡単に生成できます。 Cassandraは非常に調整可能であり、パフォーマンスを測定するための優れた指標がたくさんあるので、ストレスツールを使用すると、さまざまなオプションを試してCassandraインスタンスの管理についてさらに学ぶ機会が得られます(微調整memtable、compaction、その他の設定を確認してください)。 1〜2週間のテストで、数か月の苦労を省くことができます。

7
Andy Tolbert