12. statistics

Tasker_Jang·2024년 8월 31일
0

1. statistics란 무엇인가?

통계 및 메트릭(Statistics and Metrics)은 RocksDB의 성능과 동작 상태를 모니터링하는 데 사용되는 다양한 통계 지표입니다. 이러한 지표는 문제를 진단하고 성능을 개선하는 데 유용합니다. 주요 지표에는 다음이 포함됩니다:

  • 읽기/쓰기 지연 시간: 읽기 및 쓰기 작업에 소요되는 시간.
  • 캐시 히트/미스 비율: 데이터가 캐시에서 얼마나 자주 검색되는지와 디스크 읽기가 필요한 빈도.
  • 컴팩션 통계: 데이터 압축이 얼마나 자주 이루어지는지와 그 양.
  • 입출력 통계: 읽고 쓰는 바이트 수 등 입출력 작업에 대한 정보.

이 지표들은 RocksDB의 성능을 최적화하고 잠재적인 병목 현상을 식별하는 데 중요한 역할을 합니다.

2. statistics를 다룰 수 있는 주요 메서드

  1. set_statistics(): Options 객체에 통계를 활성화하기 위해 사용됩니다.
  1. get_statistics(): 전체 통계 정보를 문자열로 반환합니다.
  1. get_and_reset_statistics_ticker_count(): 특정 통계 카운터를 조회하고 초기화합니다.

3. 예제 코드

use rocksdb::{Options, DB, Statistics, TickerType};

fn main() {
    // RocksDB 옵션 설정 및 통계 활성화
    let mut options = Options::default();
    options.create_if_missing(true);
    options.set_statistics(Statistics::get_statistics());

    // RocksDB 데이터베이스 열기
    let db = DB::open(&options, "./path_for_rocksdb_storage").unwrap();

    // 데이터베이스에 키-값 쌍 추가
    db.put(b"key1", b"value1").unwrap();
    db.put(b"key2", b"value2").unwrap();

    // 통계 정보 출력
    let stats = db.get_statistics().unwrap();
    println!("Current Statistics: \n{}", stats);

    // 특정 통계 정보 가져오기 및 초기화
    let block_cache_hits = db.get_and_reset_statistics_ticker_count(TickerType::BlockCacheHit);
    println!("Block Cache Hits: {}", block_cache_hits);
}
profile
터널을 지나고 있을 뿐, 길은 여전히 열려 있다.

0개의 댓글