Redis基准性能测试的是为了测出在不同软硬件配置下Redis的基本性能,从而推断出Redis是否变慢了。用更直白的话说,如果有两台机器AB,机器A的性能只有机器B的一半,当机器B的Redis响应耗时高于100毫秒,我们就认为这是响应过慢,但是机器A就不能以机器B的响应耗时标准来评判,因为它们的基本性能并不相同,下面就介绍两种基准性能测试的方式。(我所使用的配置为:Ubuntu Server 20.04、R9-5900X (分配2个虚拟核心)、8G内存、120G NVME固态硬盘,redis版本6.2.6)

方式一:redis-cli --intrinsic-latency

从Redis的2.8.7版本开始,redis-cli命令可以追加–intrinsic-latency选项,这个选项能用来监测和统计某个时间段内Redis的最大延迟,我们可以把这个延迟作为Redis的基准性能。–intrinsic-latency选项需要指定时长,例如下面我指定了120秒:
在这里插入图片描述

方式二:redis-benchmark

redis-benchmark是redis自带的性能测试工具,适合业务量已知的情况下使用,redis-benchmark的官方文档点击这里
我这里模拟500个客户端同时请求redis的get与set操作,一共请求10万次

redis-benchmark -t set,get -c 500 -n 100000
====== SET ======                                                     
  100000 requests completed in 0.40 seconds
  500 parallel clients
  3 bytes payload
  keep alive: 1
  host configuration "save": 3600 1 300 100 60 10000
  host configuration "appendonly": no
  multi-thread: no

Latency by percentile distribution: #按百分比分布的延迟
0.000% <= 0.399 milliseconds (cumulative count 1)
50.000% <= 1.007 milliseconds (cumulative count 51601)
75.000% <= 1.047 milliseconds (cumulative count 78236)
87.500% <= 1.095 milliseconds (cumulative count 88069)
93.750% <= 1.191 milliseconds (cumulative count 93943)
96.875% <= 1.375 milliseconds (cumulative count 96903)
98.438% <= 1.687 milliseconds (cumulative count 98444)
99.219% <= 1.863 milliseconds (cumulative count 99237)
99.609% <= 1.991 milliseconds (cumulative count 99617)
99.805% <= 2.103 milliseconds (cumulative count 99812)
99.902% <= 2.199 milliseconds (cumulative count 99906)
99.951% <= 2.319 milliseconds (cumulative count 99952)
99.976% <= 2.431 milliseconds (cumulative count 99977)
99.988% <= 2.487 milliseconds (cumulative count 99988)
99.994% <= 2.527 milliseconds (cumulative count 99994)
99.997% <= 2.543 milliseconds (cumulative count 99998)
99.998% <= 2.551 milliseconds (cumulative count 100000)
100.000% <= 2.551 milliseconds (cumulative count 100000)

Cumulative distribution of latencies: #延迟的累计分布
0.000% <= 0.103 milliseconds (cumulative count 0)
0.004% <= 0.407 milliseconds (cumulative count 4)
0.042% <= 0.503 milliseconds (cumulative count 42)
0.086% <= 0.607 milliseconds (cumulative count 86)
0.208% <= 0.703 milliseconds (cumulative count 208)
0.514% <= 0.807 milliseconds (cumulative count 514)
0.999% <= 0.903 milliseconds (cumulative count 999)
51.601% <= 1.007 milliseconds (cumulative count 51601)
88.828% <= 1.103 milliseconds (cumulative count 88828)
94.390% <= 1.207 milliseconds (cumulative count 94390)
96.115% <= 1.303 milliseconds (cumulative count 96115)
97.092% <= 1.407 milliseconds (cumulative count 97092)
97.523% <= 1.503 milliseconds (cumulative count 97523)
98.060% <= 1.607 milliseconds (cumulative count 98060)
98.523% <= 1.703 milliseconds (cumulative count 98523)
99.008% <= 1.807 milliseconds (cumulative count 99008)
99.379% <= 1.903 milliseconds (cumulative count 99379)
99.658% <= 2.007 milliseconds (cumulative count 99658)
99.812% <= 2.103 milliseconds (cumulative count 99812)
100.000% <= 3.103 milliseconds (cumulative count 100000)

Summary:
  throughput summary: 248756.22 requests per second #每秒通过248756个请求
  latency summary (msec):
          avg       min       p50       p95       p99       max
        1.034     0.392     1.007     1.239     1.807     2.551
====== GET ======                                                     
  100000 requests completed in 0.41 seconds
  500 parallel clients
  3 bytes payload
  keep alive: 1
  host configuration "save": 3600 1 300 100 60 10000
  host configuration "appendonly": no
  multi-thread: no

Latency by percentile distribution:
0.000% <= 0.447 milliseconds (cumulative count 1)
50.000% <= 1.031 milliseconds (cumulative count 51602)
75.000% <= 1.071 milliseconds (cumulative count 79450)
87.500% <= 1.103 milliseconds (cumulative count 87789)
93.750% <= 1.199 milliseconds (cumulative count 93971)
96.875% <= 1.303 milliseconds (cumulative count 96942)
98.438% <= 1.583 milliseconds (cumulative count 98462)
99.219% <= 1.847 milliseconds (cumulative count 99234)
99.609% <= 2.079 milliseconds (cumulative count 99615)
99.805% <= 2.319 milliseconds (cumulative count 99806)
99.902% <= 2.527 milliseconds (cumulative count 99904)
99.951% <= 2.887 milliseconds (cumulative count 99952)
99.976% <= 3.167 milliseconds (cumulative count 99976)
99.988% <= 3.287 milliseconds (cumulative count 99988)
99.994% <= 3.335 milliseconds (cumulative count 99994)
99.997% <= 3.359 milliseconds (cumulative count 99997)
99.998% <= 3.375 milliseconds (cumulative count 100000)
100.000% <= 3.375 milliseconds (cumulative count 100000)

Cumulative distribution of latencies:
0.000% <= 0.103 milliseconds (cumulative count 0)
0.016% <= 0.503 milliseconds (cumulative count 16)
0.061% <= 0.607 milliseconds (cumulative count 61)
0.125% <= 0.703 milliseconds (cumulative count 125)
0.296% <= 0.807 milliseconds (cumulative count 296)
0.647% <= 0.903 milliseconds (cumulative count 647)
38.290% <= 1.007 milliseconds (cumulative count 38290)
87.789% <= 1.103 milliseconds (cumulative count 87789)
94.316% <= 1.207 milliseconds (cumulative count 94316)
96.942% <= 1.303 milliseconds (cumulative count 96942)
97.550% <= 1.407 milliseconds (cumulative count 97550)
97.959% <= 1.503 milliseconds (cumulative count 97959)
98.535% <= 1.607 milliseconds (cumulative count 98535)
98.837% <= 1.703 milliseconds (cumulative count 98837)
99.117% <= 1.807 milliseconds (cumulative count 99117)
99.348% <= 1.903 milliseconds (cumulative count 99348)
99.521% <= 2.007 milliseconds (cumulative count 99521)
99.641% <= 2.103 milliseconds (cumulative count 99641)
99.970% <= 3.103 milliseconds (cumulative count 99970)
100.000% <= 4.103 milliseconds (cumulative count 100000)

Summary:
  throughput summary: 243902.44 requests per second
  latency summary (msec):
          avg       min       p50       p95       p99       max
        1.051     0.440     1.031     1.231     1.767     3.375
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐