개요

구글에서 만든 key-value store 데이터 베이스인데, 여기에 파일 시스템을 벤치마크할 수 있는 db_bench가 있다. 시스템 벤치마크시 유용하게 사용할 수 있기에 여기에 정리해 둔다.

LevelDB is a fast key-value storage library written at Google that provides an ordered mapping from string keys to string values.

벤치 방법

모든 벤치마크는 page cache를 지우지 않는다!. 따라서 직접 코드에 page cache를 지우는 코드를 삽입해야 한다.
./db_bench <arguments>

주요 arguments들

--value_size=... (key-value의 value크기를 결정. 4096정도 넣으면 4GB정도 테스트 가능하다)
--cache_size=... 내부 캐시 사이즈 결정
--db=... 벤치마크할 폴더 설정

벤치 결과

  • read/fill random: 렌덤 access에서의 속도와 IOPS/us가 나온다. (async)
  • read/fill seq: sequential access에서의 속도와 IOPS/us가 나온다. (async)
  • read/fill reverse: reverse access에서의 속도와 IOPS/us가 나온다. (async)
  • overwrite: async 모드에서 데이터를 랜덤한 키값에 따라서 덮어쓰는 속도를 측정한다. (async)
  • fillsync: sync모드에서 데이터를 작성하는 속도를 측정한다. (sync) (즉 각각의 write모드 마다 sync()를 호출한다는 말)