我编写了一个示例 WebFlux 应用程序,它只从 redis 读取一些数据并执行小型 cpu 工作(md5 计算),重复几次。
它使用弹簧数据 redis 反应式
'org.springframework.boot:spring-boot-starter-data-redis-reactive'
连接redis的代码是这样的。
reactiveStringRedisTemplate.opsForValue().get(keyname)
redis 服务器在 localhost 运行
redis-server &
完整代码,你可以在这里找到
https://github.com/mouse500/redperf
这是一个简单的代码
为了测试,我用 Jmeter 调用 API (/wredis) 来进行负载测试
我认为的问题是...
此应用程序未达到最大 TPS,
它在我的本地 PC 上达到大约 40% 的 CPU。
即使它有更多的 CPU 空间,它也不会更努力地工作
为什么它没有充分利用资源?
如果有其他方法连接redis,
(我放了连接代理,用nodejs写的)
它显示出更高的 CPU 和更高的 TPS。
所以我认为这与 Redis 服务器性能无关。
“使用生菜从 WebFlux 应用程序调用 Redis”时出现问题
如何使此示例应用程序显示最大 TPS(CPU 达到 100%)?
我可以尝试什么选项?