10.1.性能测试

redis

机器条件

  • 操作系统:Windows 10专业版

  • 处理器:lntel(R)Core(TM) i5-6200U CPU @2.30GHz 2.40 GHz

  • 已安装的内存(RAM):16.0 GB (15.9 GB可用)

  • 系统类型:64位操作系统,基于x64的处理器

测试一:RPS测试

C:\Users\moluo>redis-benchmark -n 10000 -q
PING_INLINE: 9345.79 requests per second
PING_BULK: 9380.86 requests per second
SET: 9871.67 requests per second
GET: 8984.73 requests per second
INCR: 9425.07 requests per second
LPUSH: 6501.95 requests per second
RPUSH: 6605.02 requests per second
LPOP: 5878.90 requests per second
RPOP: 5296.61 requests per second
SADD: 6544.50 requests per second
SPOP: 6418.49 requests per second
LPUSH (needed to benchmark LRANGE): 6570.30 requests per second
LRANGE_100 (first 100 elements): 5640.16 requests per second
LRANGE_300 (first 300 elements): 3563.79 requests per second
LRANGE_500 (first 450 elements): 3020.24 requests per second
LRANGE_600 (first 600 elements): 2573.34 requests per second
MSET (10 keys): 5274.26 requests per second

结论:

支持万级RPS,随着请求数增加,RPS逐渐下降

测试二:延时测试

C:\Users\moluo>redis-benchmark -n 10000
====== PING_INLINE ======
  10000 requests completed in 1.16 seconds
  50 parallel clients
  3 bytes payload
  keep alive: 1

0.01% <= 1 milliseconds
3.36% <= 2 milliseconds
65.15% <= 3 milliseconds
88.40% <= 4 milliseconds
96.55% <= 5 milliseconds
98.22% <= 6 milliseconds
99.14% <= 7 milliseconds
99.53% <= 8 milliseconds
99.86% <= 9 milliseconds
99.94% <= 10 milliseconds
100.00% <= 11 milliseconds
8591.07 requests per second

====== PING_BULK ======
  10000 requests completed in 1.02 seconds
  50 parallel clients
  3 bytes payload
  keep alive: 1

0.03% <= 1 milliseconds
19.47% <= 2 milliseconds
71.38% <= 3 milliseconds
95.51% <= 4 milliseconds
99.36% <= 5 milliseconds
99.96% <= 6 milliseconds
99.98% <= 7 milliseconds
100.00% <= 8 milliseconds
9832.84 requests per second

====== SET ======
  10000 requests completed in 1.04 seconds
  50 parallel clients
  3 bytes payload
  keep alive: 1

0.01% <= 1 milliseconds
20.98% <= 2 milliseconds
74.51% <= 3 milliseconds
91.38% <= 4 milliseconds
96.96% <= 5 milliseconds
98.78% <= 6 milliseconds
99.49% <= 7 milliseconds
99.85% <= 8 milliseconds
99.98% <= 9 milliseconds
100.00% <= 10 milliseconds
9615.38 requests per second

====== GET ======
  10000 requests completed in 1.13 seconds
  50 parallel clients
  3 bytes payload
  keep alive: 1

0.01% <= 1 milliseconds
5.36% <= 2 milliseconds
64.18% <= 3 milliseconds
91.13% <= 4 milliseconds
97.01% <= 5 milliseconds
98.80% <= 6 milliseconds
99.33% <= 7 milliseconds
99.59% <= 8 milliseconds
99.70% <= 9 milliseconds
99.78% <= 10 milliseconds
99.84% <= 11 milliseconds
99.98% <= 12 milliseconds
100.00% <= 12 milliseconds
8818.34 requests per second

====== INCR ======
  10000 requests completed in 1.13 seconds
  50 parallel clients
  3 bytes payload
  keep alive: 1

0.26% <= 1 milliseconds
11.77% <= 2 milliseconds
68.43% <= 3 milliseconds
84.78% <= 4 milliseconds
96.75% <= 5 milliseconds
98.44% <= 6 milliseconds
99.25% <= 7 milliseconds
99.83% <= 8 milliseconds
99.95% <= 9 milliseconds
100.00% <= 10 milliseconds
8880.99 requests per second

====== LPUSH ======
  10000 requests completed in 1.52 seconds
  50 parallel clients
  3 bytes payload
  keep alive: 1

0.01% <= 1 milliseconds
0.62% <= 2 milliseconds
14.23% <= 3 milliseconds
54.90% <= 4 milliseconds
88.43% <= 5 milliseconds
97.19% <= 6 milliseconds
99.12% <= 7 milliseconds
99.62% <= 8 milliseconds
99.71% <= 9 milliseconds
99.77% <= 10 milliseconds
99.90% <= 11 milliseconds
99.95% <= 12 milliseconds
99.97% <= 13 milliseconds
99.99% <= 14 milliseconds
100.00% <= 14 milliseconds
6578.95 requests per second

====== RPUSH ======
  10000 requests completed in 1.52 seconds
  50 parallel clients
  3 bytes payload
  keep alive: 1

0.01% <= 1 milliseconds
0.37% <= 2 milliseconds
10.34% <= 3 milliseconds
62.55% <= 4 milliseconds
91.16% <= 5 milliseconds
97.97% <= 6 milliseconds
99.65% <= 7 milliseconds
99.85% <= 8 milliseconds
99.92% <= 9 milliseconds
99.98% <= 10 milliseconds
100.00% <= 11 milliseconds
6591.96 requests per second

====== LPOP ======
  10000 requests completed in 1.50 seconds
  50 parallel clients
  3 bytes payload
  keep alive: 1

0.01% <= 1 milliseconds
1.08% <= 2 milliseconds
12.15% <= 3 milliseconds
58.53% <= 4 milliseconds
91.33% <= 5 milliseconds
98.33% <= 6 milliseconds
99.58% <= 7 milliseconds
99.85% <= 8 milliseconds
99.91% <= 9 milliseconds
99.97% <= 10 milliseconds
99.99% <= 11 milliseconds
100.00% <= 11 milliseconds
6657.79 requests per second

====== RPOP ======
  10000 requests completed in 1.52 seconds
  50 parallel clients
  3 bytes payload
  keep alive: 1

0.01% <= 1 milliseconds
0.14% <= 2 milliseconds
11.63% <= 3 milliseconds
54.73% <= 4 milliseconds
89.90% <= 5 milliseconds
97.85% <= 6 milliseconds
99.14% <= 7 milliseconds
99.37% <= 8 milliseconds
99.60% <= 9 milliseconds
99.64% <= 10 milliseconds
99.68% <= 11 milliseconds
99.85% <= 12 milliseconds
99.87% <= 14 milliseconds
99.91% <= 15 milliseconds
99.96% <= 16 milliseconds
100.00% <= 17 milliseconds
6565.99 requests per second

====== SADD ======
  10000 requests completed in 1.56 seconds
  50 parallel clients
  3 bytes payload
  keep alive: 1

0.01% <= 1 milliseconds
1.00% <= 2 milliseconds
14.17% <= 3 milliseconds
51.89% <= 4 milliseconds
86.57% <= 5 milliseconds
94.91% <= 6 milliseconds
97.13% <= 7 milliseconds
98.32% <= 8 milliseconds
99.29% <= 9 milliseconds
99.72% <= 10 milliseconds
99.91% <= 11 milliseconds
99.94% <= 12 milliseconds
100.00% <= 13 milliseconds
6410.26 requests per second

====== SPOP ======
  10000 requests completed in 1.73 seconds
  50 parallel clients
  3 bytes payload
  keep alive: 1

0.01% <= 1 milliseconds
0.77% <= 2 milliseconds
11.05% <= 3 milliseconds
41.86% <= 4 milliseconds
70.21% <= 5 milliseconds
88.55% <= 6 milliseconds
95.72% <= 7 milliseconds
97.97% <= 8 milliseconds
99.03% <= 9 milliseconds
99.41% <= 10 milliseconds
99.72% <= 11 milliseconds
99.87% <= 12 milliseconds
99.94% <= 13 milliseconds
99.99% <= 14 milliseconds
100.00% <= 14 milliseconds
5783.69 requests per second

====== LPUSH (needed to benchmark LRANGE) ======
  10000 requests completed in 1.50 seconds
  50 parallel clients
  3 bytes payload
  keep alive: 1

0.01% <= 1 milliseconds
0.92% <= 2 milliseconds
12.20% <= 3 milliseconds
61.53% <= 4 milliseconds
93.55% <= 5 milliseconds
98.17% <= 6 milliseconds
99.61% <= 7 milliseconds
99.87% <= 8 milliseconds
99.94% <= 9 milliseconds
99.98% <= 10 milliseconds
100.00% <= 12 milliseconds
6671.11 requests per second

====== LRANGE_100 (first 100 elements) ======
  10000 requests completed in 1.72 seconds
  50 parallel clients
  3 bytes payload
  keep alive: 1

0.01% <= 2 milliseconds
2.14% <= 3 milliseconds
30.21% <= 4 milliseconds
76.74% <= 5 milliseconds
95.51% <= 6 milliseconds
98.73% <= 7 milliseconds
99.38% <= 8 milliseconds
99.57% <= 9 milliseconds
99.89% <= 10 milliseconds
99.96% <= 11 milliseconds
99.99% <= 12 milliseconds
100.00% <= 12 milliseconds
5800.46 requests per second

====== LRANGE_300 (first 300 elements) ======
  10000 requests completed in 2.25 seconds
  50 parallel clients
  3 bytes payload
  keep alive: 1

0.01% <= 3 milliseconds
1.07% <= 4 milliseconds
23.53% <= 5 milliseconds
68.94% <= 6 milliseconds
91.43% <= 7 milliseconds
96.05% <= 8 milliseconds
98.51% <= 9 milliseconds
99.62% <= 10 milliseconds
99.85% <= 11 milliseconds
99.92% <= 12 milliseconds
99.97% <= 13 milliseconds
99.99% <= 15 milliseconds
100.00% <= 17 milliseconds
4450.38 requests per second

====== LRANGE_500 (first 450 elements) ======
  10000 requests completed in 2.65 seconds
  50 parallel clients
  3 bytes payload
  keep alive: 1

0.01% <= 3 milliseconds
0.08% <= 4 milliseconds
3.80% <= 5 milliseconds
29.58% <= 6 milliseconds
74.03% <= 7 milliseconds
91.38% <= 8 milliseconds
95.63% <= 9 milliseconds
97.73% <= 10 milliseconds
98.77% <= 11 milliseconds
99.21% <= 12 milliseconds
99.28% <= 13 milliseconds
99.39% <= 14 milliseconds
99.53% <= 15 milliseconds
99.56% <= 16 milliseconds
99.58% <= 17 milliseconds
99.61% <= 18 milliseconds
99.64% <= 19 milliseconds
99.68% <= 20 milliseconds
99.71% <= 21 milliseconds
99.72% <= 22 milliseconds
99.75% <= 23 milliseconds
99.77% <= 24 milliseconds
99.79% <= 25 milliseconds
99.80% <= 26 milliseconds
99.83% <= 27 milliseconds
99.86% <= 28 milliseconds
99.89% <= 29 milliseconds
99.91% <= 31 milliseconds
99.92% <= 32 milliseconds
99.94% <= 33 milliseconds
99.95% <= 35 milliseconds
99.96% <= 37 milliseconds
99.97% <= 39 milliseconds
100.00% <= 40 milliseconds
3775.01 requests per second

====== LRANGE_600 (first 600 elements) ======
  10000 requests completed in 3.00 seconds
  50 parallel clients
  3 bytes payload
  keep alive: 1

0.01% <= 3 milliseconds
0.02% <= 4 milliseconds
0.70% <= 5 milliseconds
7.52% <= 6 milliseconds
33.14% <= 7 milliseconds
74.28% <= 8 milliseconds
91.33% <= 9 milliseconds
95.73% <= 10 milliseconds
97.55% <= 11 milliseconds
99.10% <= 12 milliseconds
99.67% <= 13 milliseconds
99.76% <= 14 milliseconds
99.77% <= 15 milliseconds
99.80% <= 16 milliseconds
99.81% <= 17 milliseconds
99.90% <= 18 milliseconds
99.99% <= 19 milliseconds
100.00% <= 19 milliseconds
3334.44 requests per second

====== MSET (10 keys) ======
  10000 requests completed in 1.70 seconds
  50 parallel clients
  3 bytes payload
  keep alive: 1

0.01% <= 2 milliseconds
3.03% <= 3 milliseconds
47.54% <= 4 milliseconds
80.16% <= 5 milliseconds
91.78% <= 6 milliseconds
96.45% <= 7 milliseconds
97.88% <= 8 milliseconds
98.85% <= 9 milliseconds
99.36% <= 10 milliseconds
99.77% <= 11 milliseconds
99.90% <= 12 milliseconds
99.98% <= 13 milliseconds
100.00% <= 13 milliseconds
5885.81 requests per second

结论

10ms级别

Mysql

机器条件

  • 操作系统:Windows 10专业版

  • 处理器:lntel(R)Core(TM) i5-6200U CPU @2.30GHz 2.40 GHz

  • 已安装的内存(RAM):16.0 GB (15.9 GB可用)

  • 系统类型:64位操作系统,基于x64的处理器

测试:RPS测试

C:\Users\moluo>mysqlslap -a --number-of-queries=10000 -uroot -p123456aB
mysqlslap: [Warning] Using a password on the command line interface can be insecure.
Benchmark
        Average number of seconds to run all queries: 530.109 seconds
        Minimum number of seconds to run all queries: 530.109 seconds
        Maximum number of seconds to run all queries: 530.109 seconds
        Number of clients running queries: 1
        Average number of queries per client: 10000

结果中各项含义:

Average number of : 运行所有语句的平均秒数

Minimum number of :运行所有语句的最小秒数

Maximum number of:运行所有语句的最大秒数

Number of clients:客户端数量

Average number of queries per client:每个客户端运行查询的平均数

结论

18 requests per second

参考文档

Redis 性能测试

Mysql 压力测试工具 mysqlslap

MySQL自带的性能压力测试工具mysqlslap详解

Last updated

Was this helpful?