본문 바로가기

좋아하는 것_매직IT/9.redis

3.Redis, 레디스의 성능 측정에 대해서 간단하게 알아볼께요?

반응형

레디스의 성능 측정에 대해서..

  • 서비스에 새로운 솔루션을 도입하려면, 반드시 성능 측정이 수반됨.
  • 얼마나 많은 요청을 한꺼번에 처리할 수 있는지와 요청 하나를 처리하는데 걸리는 시간등등을 측정하여 도입 여부를 결정하고 도입할 하드웨어 사양을 결정함.
    • 즉, 성능측정을 위해서는 많은 시간이 소요됨.
  • 레디스는 성능 측정을 위해서 아래 툴을 지원함.
    • redis-benchmark

 

성능 측정

  • $ redis-benchmark
    • 주요 option 설명
      • -h <hostname>
        • 테스트를 수행하기 위해 접속할 레디스 서버의 호스트명
        • 기본값 : 127.0.0.1
      • -p <port>
        • 테스트를 수행하기 위해 접속할 레디스 서버의 포트
        • 기본값 : 6379 
      • -s <socket>
        • 테스트를 수행하기 위해 접속할 레디스 서버의 유닉스 서버 소켓
      • -c <clients>
        • 테스트를 위한 가상 클라이언트의 동시 접속 수
        • 기본값 : 50
      • -n <requests>
        • 각 명령의 테스트 횟수
        • 기본값 : 10000 
      • -d <size>
        • 테스트에 사용할 데이터 크기
      • -k <boolean>
        • 테스트를 위한 가상 클라이언트의 접속유지 여부
          • 0 : 접속 유지 하지 않음.
          • 1 : 접속 유지함.
      • -r <kerspacelen>
        • 테스트에 사용할 랜덤 키의 범위
        • 기본값 : 0
      • -P <numreq>
        • 파이프라인 명령을 사용한 테스트와 파이프라인당 요청할 명령의 개수
        • 기본값 : 0 (파이프 미사용)
      • -q 
        • 테스트 진행샇황을 출력하지 않고 결과만 출력
      • -- csv
        • 테스트 결과를 csv 포멧으로 출력함.
      • -t <tests>
        • 쉼표로 구분된 테시트 명령의 목록
    • 위의 명령 실행시 엄청난 속도(?)로 화면이 스크롤이 되면서 무언가가 출력됨.
    • 주요 출력 정보는 아래와 같다.
      • 명령을 처리하는 데 걸린 시간
      • 클라이언트 동시 연결
      • 저장 데이터의 크기
      • 클라이언트 연결 유지 상태 정보
      • 초당 처리된 명령 수
  • 예시

결론

  • 10년이상된 서버개발자입장으로 돌이켜 보면, 항상 새로운 프로젝트와 신규 프로세스 개발 시 성능 테스트는 피할 수 없는 즐겨야하는 과정이였음.
  • 새로운 프로세스를 통해서 기대되는 성능 수치가 나오지 않을 경우, 고민하며 소스를 수정했던 기억이 있음
  • 레디스에서는 손쉬게 성능 테스트를 할 수 있는 툴이 제공되어 감사했음.^^;
728x90
300x250