2013-10-17 3 views
2

우리는 현재 더 큰 Cassandra 클러스터를 배치하고 키 캐시의 최적 크기를 예측하는 방법을 모색 중입니다. 또는 키 캐시에서 한 행의 크기를 찾는 방법을보다 정확하게 찾으십시오.Cassandra KeyCache 견적

저는 흑연을 사용하는 통합 메트릭스 시스템을 사용하려고했지만 명확한 답을 얻을 수 없었습니다. 더 나아가 org.cassandra.io.sstable에 내 디버깅 코드를 넣으려고했으나 구체적인 결과가 도출되지 않았습니다.

우리는 Cassandra 1.20.10을 사용하고 있지만 키 캐시에서 한 행의 크기를 얻는 것에 대한 어리석은 해결책이 있습니까? 안부와

,

벤 키 크기의 추정을위한

답변

2

체크 아웃 jamm을 확인하십시오. 메모리에있는 객체의 크기를 측정하는 데 사용되는 라이브러리입니다.

시작 매개 변수에 -javaagent:"/path/to/jamm.jar"을 추가해야하지만 cassandra는 jamm으로 시작하도록 구성되어 있으므로 내부 카산드라 코드를 변경하면 이미 완료되었습니다. (바이트) 객체의 크기에

: 깊은

MemoryMeter meter = new MemoryMeter(); 
meter.measureDeep(object); 

측정은 객체의 메모리 크기보다 비용이 많이 드는하지만 훨씬 더 정확한 측정이다.

+0

완벽한 답변! 대단히 감사합니다. – Ben

0

,의 당신이 캐시에 100 만 키 길이는 평균 60 바이트의 각 키를 저장하도록 가정하자. 키를 저장하기 위해 약간의 오버 헤드가있을 것이고, 행 당 키 크기 = 100 바이트를 의미하는 40 바이트라고 말할 수 있습니다.

우리가 1 백만 키

총 키 캐시 = 1 백만 * 100 = 100 메가 바이트 캐시 할 필요가 있기 때문에

은 키 스페이스의 각 CF에 대해이 작업을 수행합니다.