私はCassandraの読み取りパフォーマンスを改善するための助けが必要です。列ファミリのサイズが大きくなるにつれて、読取りパフォーマンスの低下が懸念されます。単一ノードのカサンドラについて、次の統計があります。Cassandra Amazon EC2、パフォーマンス実験を読む
オペレーティングシステム: - :のapache-カサンドラ-1.1.0
Javaバージョン: "1.6.0_14" のJava(TM)SEランタイムのLinuxのCentOS 5.4(最終)
カサンドラバージョンをリリース環境(1.6.0_14-B08を構築) は、Java HotSpot(TM)64ビットサーバーVM(14.0-B16、混合モードを構築する)
カサンドラ構成:(cassandra.yaml)
- rpc_server_type:HSHA
- disk_access_mode:MMAP
- concurrent_reads:64
- concurrent_writes:32
プラットフォーム:4エフェメラルディスクをアマゾン-EC2/RightScaleのm1.Xlargeインスタンスraid0で(15ギガバイト合計メモリ、4仮想コア、2 ECU、合計ECU = 8)
実験構成: 私はGC
カサンドラの設定でいくつかの実験を行うことを試みている:
10 GB RAMはCassandra Heapに割り当てられ、3500MBはHeap NEWサイズです。
JVM設定:
JVM_OPTS = "$ JVM_OPTS -XX:+ UseParNewGC"
JVM_OPTS = "$ JVM_OPTS -XX:+ UseConcMarkSweepGCを"
JVM_OPTS = "$ JVM_OPTS -XX:+ CMSParallelRemarkEnabled"
JVM_OPTS = "$ JVM_OPTS -XX:SurvivorRatio = 1000"
JVM_OPTS = "$ JVM_OPTS -XX:MaxTenuringThreshold = 0"
JVM_OPTS = "$ JVM_OPTS -XX:CMSInitiatingOccupancyFraction = 40"
JVM_OPTS = "$ JVM_OPTS -XX:+ UseCMSInitiatingOccupancyOnly -XX:+ UseCompressedOops "
OpsCenterのコミュニティ2.0からの
結果の統計:
読むには208秒
OSのロード24.5あたり28から18に要求し二
書き込みあたり240から25に要求します。85
書き込み要求レイテンシ127〜160ミクロス
読み出し要求レイテンシ82202 94612へのミクロス
ネットワークトラフィック二
OS受け取ったネットワークトラフィックの4338キロバイト平均毎秒
OSディスクキューのサイズ13〜15あたり44646キロバイトの平均送信 OS保留
読み取り要求を要求25 32から
OSディスクレイテンシ48〜56ミリ秒
OSディスク読み取りスループット第
ディスクのIOPあたり4.6 Mbが第あたり420を読み込み
IOWAIT 80%CPUの平均
アイドル13%のCPUの平均
ROWCACHEは無効です。
列の家族、私は唯一のCLIを使用して作成されてから読んでい列ファミリーの
一つ
create column family XColFam
with column_type='Standard'
and comparator = CompositeType(BytesType,IntegerType)';"
列ファミリーSSTableサイズ= 7.10ギガバイト、SSTableカウント= 2
XColFam
カラムファミリーは59499904番です。 (ほとんどが長さが変化するutf8リテラルで、mx4jtoolsで推定されます)、薄い性質のカラムがあり、値は0バイトです。
ほとんどの行は、列名の第1コンポーネントのおよそ20〜30バイトで、第2は8バイトの整数の非常に小さい列数を持つ必要があります。....複合列の第2コンポーネント動的である可能性がありますが、確率は低いです.........第1成分は品種で繰り返されますが、行の列の数は異なる場合があります。
私はカラムファミリーを圧縮するためにSnappyCompression
を試しましたが、サイズの変更はありませんでした。
私は20のスレッドで時間のために実行スケジュールされたサービスを持っていないし、複数のキーのためのランダム読み取り要求を行う(リクエストあたりの今のその2つの鍵)は、このコラムの家族に、完全な行を読んで、何列スライスまたはなど
1分あたりのリクエスト数が少なすぎるため、今はうまくいきません。以前は列ファミリのサイズがそれほど大きくないときには以前よりうまくいきました。それは約3から4 GBでした。
カラムファミリのサイズの増加に伴い、読取りパフォーマンスが低下することが懸念されます。
GCとメモリの使用量が多かったため、GCとメモリの一部を調整しようとしました。データのサイズが小さく、波の形が非常に小さいとき。
どのようにしてCassandraのパフォーマンスを向上させることができますか?あなたの提案は高く評価されます。
読み取り要求待ち時間82202〜94612マイクロ秒...待ち時間82秒? – Crowie