Redis-benchmark

레디스 서버 교육 신청 레디스 정기점검/기술지원
Redis Technical Support
레디스 엔터프라이즈 서버
Redis Enterprise Server

Redis-benchmark

Redis-benchmark 사용법을 설명합니다.
이 문서는 버전 4.0.9를 기준으로 작성했습니다.

명령 목록

기본 Benchmark

  • 주요 명령을 10만회씩 실행해서 성능을 측정한다. 주요 명령은 PINK, SET, GET, INCR, LPUSH, RPUSH, LPOP, RPOP, SADD, HSET, SPOP, LRANGE, MSET 이다.
  • 테스트 서버에서 주요 입력 명령의 초당 처리량(실행 횟수)은 약 20만회이다.
  • 버전 6.0부터 save, appendonly, threads 가 추가로 표시된다. 이 항목(옵션)에 따라 성능이 달라질 수 있다.

클러스터 지원: --cluster

  • 버전 6.0부터 클러스터에 benchmark가 가능하다.
  • 버전 6.0 미만에서 클러스터로 구성된 하나의 노드에 benchmark를 실행하면 benchmark는 실행되는 것으로 표시되지만 cluster redis-server에서는 처리되지 않는다. 즉, SET, GET 같은 명령이 실행되지 않는다. 그러므로 benchmark 실행 후 해당 노드에 접속해서 데이터를 확인하면 하나도 없고 당연히 aof 파일에도 저장되지 않는다. 다만 ping 명령은 실행된다. Ping 명령으로도 성능을 가늠해볼 수는 있다.
  • 버전 6.0 미만에서는 단독 마스터를 실행해서 benchmark를 테스트한다.

단순하게 표시: -q

CSV 형식으로 표시: --csv

명령 지정: -t

  • -t 옵션으로 benchmark를 실행할 명령을 지정한다.

실행 횟수 지정: -n

  • -n 옵션으로 실행 횟수를 지정한다. Default는 100,000이다.

Client 수 지정: -c

  • -c 옵션으로 Clients 수를 지정한다. Default는 50이다.

Sleep 지정: -usleep

  • -usleep로 sleep를 지정한다. 단위는 마이크로초(microsecond)이다. 1000000 -> 1초, 1000 -> 1ms 입니다. 위에서 설명한 client 옵션과 같이 사용해서 실행 명령 수를 조정할 수 있습니다. Default는 0이다.
    이 옵션은 Enterprise 7.2.0부터 사용할 수 있습니다.

Thread 수 지정: --threads

  • --threads <num> 옵션으로 쓰레드 수를 지정한다. Default는 No이다.

Value 사이즈 지정: -d

  • -d 옵션으로 Value 사이즈를 지정한다. Default는 3이다. Payload에 지정한 사이즈(바이트)가 표시된다.
  • SET 명령의 경우 키 이름이 "key:__rand_int__"이다.

Key, Value 다양하게 지정: -r

  • -r 옵션으로 key 또는 value를 다양하게 테스트할 수 있다.
  • SET test
  • SADD test

Key, Value 직접 지정

  • LPUSH: redis-benchmark -p 6001 -r 1000000 lpush mylist ele:__rand_int__
  • SADD: redis-benchmark -p 6001 -r 1000000 sadd myset mem:__rand_int__
  • redis-benchmark -p 6001 -n 1000000 -r 100000000 set keyA___rand_int__ valueA___rand_int__
  • redis-benchmark -p 6001 -n 1000000 -r 100000000 get keyA___rand_int__
  • redis-benchmark -p 6001 -n 1000000 -r 100000000 del keyA___rand_int__
  • redis-benchmark -p 6001 -n 1000000 -r 100000000 zadd myzset 0 memA___rand_int__
  • redis-benchmark -p 6001 -n 1000000 get keyA_000000000345
  • redis-benchmark -p 6001 -n 1000000 object time keyA_000000000345
  • redis-benchmark -p 6001 -n 1000000 rpop mylist5

  • -r 숫자를 크게하면 member 중복을 적게 할 수 있다.
  • ZADD: redis-benchmark -p 6001 -r 1000000 zadd myzset __rand_int__ member:__rand_int__
  • HSET: redis-benchmark -p 6001 -r 1000000 hset myhash field:__rand_int__ value:__rand_int__

Client tracking on: --enable-tracking

측정(표시) 정밀도: --precision

  • --precision 0: millisecond 단위로 표시한다.
    $ src/redis-benchmark -p 6001 -t set -d 100 --precision 0
    27.88% <= 1 milliseconds
    98.78% <= 2 milliseconds
    99.76% <= 3 milliseconds
  • --precision 1: 0.1 millisecond 단위로 표시한다.
    $ src/redis-benchmark -p 6001 -t set -d 100 --precision 1
    0.12% <= 0.6 milliseconds
    0.32% <= 0.7 milliseconds
    5.91% <= 0.8 milliseconds
  • --precision 2: 0.01 millisecond 단위로 표시한다.
    $ src/redis-benchmark -p 6001 -t set -d 100 --precision 2
    0.03% <= 0.68 milliseconds
    0.12% <= 0.69 milliseconds
    0.28% <= 0.70 milliseconds

HELP


PDF manual


<< Redis-cli Redis-benchmark Redis Security >>
Email 답글이 올라오면 이메일로 알려드리겠습니다.