Redis Server Performance

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

레디스 서버 성능

성능 테스트 서버 사양 Specification

Redis Server : Version 3.0.1
OS : CentOS 7
H/W Model: HP DL320e Gen8 v2
Processor : Intel Xeon E3-1231V3.3 3.4GHz
Main Memory: DDR3 8GB RAM
Disk 1: SSD 256GB
Disk 2: SATA3 1TB

Redis-benchmark 기본 테스트

  • 테스트 결과
  • Case 1: Appendonly No
    Case 2: Appendonly Yes, everysec, Disk: SSD
    Case 3: Appendonly Yes, everysec, Disk: SATA3

    CommandsCase 1Case 2Case 3 Remark
    PING_INLINE 207,468208,333217,864
    PING_BULK 257,069261,096260,416
    SET 260,416263,852266,666
    GET 261,096261,096258,397
    INCR 263,157268,817269,541
    LPUSH 263,852269,541266,666
    LPOP 261,780268,817268,096
    SADD 264,550265,957267,379
    SPOP 265,252266,666263,852
    LRANGE_100 97,75198,32897,276 first 100 elements
    LRANGE_300 37,07836,87336,941 first 300 elements
    LRANGE_500 25,94025,77925,786 first 450 elements
    LRANGE_600 19,92419,95219,813 first 600 elements
    MSET 208,768161,550168,350 10 keys

  • 테스트 결과를 보면 SET, INCR, LPUSH 같은 대표적인 명령들이 초당 26만회 정도 처리한다.
  • Appendonly 여부와 상관없이 비슷한 성능이 나왔다.
    Appendonly를 everysec로 설정해서 운영하면 성능에 별 영향이 없을것으로 판단된다.
  • Appendonly를 always 설정하면 초당 1200회 처리하는 것으로 나왔다.
    Always로 하고 레디스를 사용하는 것은 고려하지 않는것이 좋을거 같다.

Master-Slaves SET 테스트

  • Master : appendonly no, rdb no
  • 260,416 requests per second
  • Master -> Slave1 : appendonly no, rdb no
  • 241,466 requests per second
  • Master -> Slave1 -> Slave2 : appendonly no, rdb no
  • 226,730 requests per second
  • Master -> Slave1 -> Slave2 : Slave2 만 appendonly yes 로 설정, rdb no
  • 220,306 requests per second
  • Master -> SlaveA1 : appendonly no, rdb no
               -> SlaveB1 : appendonly no, rdb no
  • 200,154 requests per second
  • Master : 물리 메모리(RAM) 용량을 초과해서 Swaping 될때 성능이 1/4로 이하로 떨어지므로 메모리를 초과해서 사용하지 않도록 모니터링을 해야 하고, 성능이 떨어졌을때 Swaping 때문인지 확인해 봐야 한다.
  • 51,156 requests per second, 정상 수치 : 260,416
  • Swap 영역을 사용하게 되면 470MB RDB 파일 BGSAVE나 BGREWRITEAOF를 하는데도 상당한 시간이 소요된다.

Data size에 따른 성능

  • H/W: PowerEdge R230
  • CPU: Intel(R) Xeon(R) CPU E3-1230 v6 @ 3.50GHz
  • # src/redis-benchmark -p 6000 -t set -d 10
    103519.66 requests per second <- aof on everysec
  • # src/redis-benchmark -p 6000 -t set -d 100
    102880.66 requests per second <- aof on everysec
  • # src/redis-benchmark -p 6000 -t set -d 1000 -> 1k
    94250.71 requests per second <- aof on everysec
  • # src/redis-benchmark -p 6000 -t set -d 10000 -> 10k
    31486.14 requests per second <- aof on everysec
    93196.65 requests per second <- aof no
  • # src/redis-benchmark -p 6000 -t set -d 100000 -> 100k
    2329.97 requests per second <- aof on everysec
    18786.40 requests per second <- aof no
    21074.82 requests per second <- get
  • # src/redis-benchmark -p 6000 -t set -d 200000 -> 200k
    1200.54 requests per second <- aof on everysec
    8776.55 requests per second <- aof no
    9367.68 requests per second <- get
  • # src/redis-benchmark -p 6000 -t set -d 300000 -> 300k
    813.25 requests per second <- aof on everysec
    6346.39 requests per second <- aof no
    5862.35 requests per second <- get

CPU 별 benchmark test

  • cat /proc/cpuinfo
  • Intel Xeon(R) Gold 5220 2.20GHz -> 30,000 ops
    CentOS 7.8, docker, Redis 5.0.9
  • Intel Xeon(R) Gold 6226 2.7GHz -> 90,000 ops
    RedHat 7.6, Redis 5.0.10
  • Intel Xeon(R) Gold 6254 CPU @ 3.10GHz -> 100,000ops
    RedHat 6.99
  • Intel(R) Xeon(R) Silver 4215 CPU @ 2.50GHz -> 140,000ops
    CentOS 7.6
  • 2.0Gz, VM -> 50,000 ops
    3.8GHz, Bare Metal -> 150,000 ops
    CentOS 7
  • 2.20GHz -> 100,000 ops
    Bare Metal, Redis 5.0.10

Redis 성능

redis performance
  • 멀티 클라이언트 vs 레디스 서버 싱글 스레드

성능에 관한 글


<< Architecture Overview Redis Server Performance Redis-cli >>

Email 답글이 올라오면 이메일로 알려드리겠습니다.

혹시 처음이세요?
레디스게이트에는 레디스에 대한 많은 정보가 있습니다.
레디스 소개, 명령어, SQL, 클라이언트, 서버, 센티널, 클러스터 등이 있습니다.
혹시 필요한 정보를 찾기 어려우시면 redisgate@gmail.com로 메일 주세요.
제가 찾아서 알려드리겠습니다.
 
close
IP를 기반으로 보여집니다.