2012-01-04 24 views
1

私は単一ノードのカサンドラセットアップで作業しています。私が使用しているシステムは8GBのRAMを搭載した4コアCPUを搭載しています。 私が使用している列ファミリのプロパティは次のとおりです。Cassandraの読み取り/書き込みパフォーマンスを改善するにはどうすればよいですか?

Keyspace: keyspace1: 
    Replication Strategy: org.apache.cassandra.locator.NetworkTopologyStrategy 
    Durable Writes: true 
    Options: [datacenter1:1] 
    Column Families: 
    ColumnFamily: colfamily (Super) 
     Key Validation Class: org.apache.cassandra.db.marshal.UTF8Type 
     Default column value validator: org.apache.cassandra.db.marshal.UTF8Type 
     Columns sorted by: org.apache.cassandra.db.marshal.UTF8Type/org.apache.cassandra.db.marshal.BytesType 
     Row cache size/save period in seconds/keys to save : 100000.0/0/all 
     Row Cache Provider: org.apache.cassandra.cache.ConcurrentLinkedHashCacheProvider 
     Key cache size/save period in seconds: 200000.0/14400 
     GC grace seconds: 864000 
     Compaction min/max thresholds: 4/32 
     Read repair chance: 1.0 
     Replicate on write: true 
     Built indexes: [] 
     Compaction Strategy: org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy 

私は、列の家族に100万行を挿入しようとしました。書き込みのスループットは約2500 /秒、読み取りは約380 /秒です。

読み取りと書き込みの両方のスループットを改善するにはどうすればよいですか?

+0

サンプルを実行するスレッドはいくつありますか? – zznate

+0

@zznate:この例では1つのスレッドしか実行されていません。 –

+1

これは、1つのスレッドに対してほぼ正しいです。パフォーマンスの簡単な検証のために、apacheソースディストリビューションのストレスツールを使用することができます:https://github.com/apache/cassandra/tree/trunk/tools/stress – zznate

答えて

1

380は、キャッシュ・ヒット率の低いハード・ディスクからデータを読み込んでいるか、またはOSがスワッピングしていることを意味します。キャッシュの使用状況を調べるには、Cassandraの統計情報を確認してください。

./nodetool -host <IP> cfstats 

行とキーの両方のキャッシュを有効にしました。行キャッシュは行全体をRAMに読み込みます - 行キーによって与えられたすべての列を意味します。この場合、キーキャッシュを無効にすることができます。行キャッシュを処理するのに十分な空きRAMがあることを確認してください。

off-heap-cache(デフォルトは1.x)でCassandraを使用している場合、行キャッシュが非常に大きく、OSがスワップ・スワップ・サイズを開始した可能性があります。

+0

答えはTHanksです。列ファミリの行には、4KBサイズの列が1つしかありません。これはスループットに影響しますか? –

+0

いいえ - そのような場合は、行キャッシュと無効化キーキャッシュを使用してください –

関連する問題