2012-01-04 5 views
1

단일 노드 카산드라 설정 작업을하고 있습니다. 내가 사용하고있는 시스템에는 8GB RAM을 갖춘 4 코어 CPU가 있습니다. 내가 사용하고있는 열 가족의 특성은 다음과 같습니다카산드라 읽기/쓰기 성능을 개선하려면 어떻게해야합니까?

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

다음은 한 스레드에 대한 내용입니다. 성능을 쉽게 확인할 수 있도록 아파치 소스 배포판의 스트레스 툴을 사용할 수 있습니다 : 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

해답은 고맙습니다. 열 패밀리의 행에는 4KB 크기의 열이 하나만 있습니다. 이것이 처리량에 영향을 줍니까 ?? –

+0

아니요 -이 경우 행 캐시를 사용하고 키 캐시를 사용 중지합니다. –

관련 문제