我有一个应用程序,目前有一个内存缓存,当然,性能非常快。但由于某些原因(超出本文范围),我想开始使用 Redis,但性能却急剧下降。
我有几十个实例,每个实例都运行 nginx 和一个 Java 应用程序。/proc/sys/net/ipv4/ip_local_port_range
已增加到10240 65535
64,000 个端口,以便 nginx 可以与应用程序通信。使用内存缓存,环境可以轻松支持大约 10,000 RPS,应用程序将使用大约 45-50% 的 CPU。使用 Redis,我只能获得 2500 RPS,CPU 利用率甚至没有超过 10%。Redis 集群已配置为支持数万个客户端,但我的应用程序实际上总共不会建立超过几百个连接 - 每个实例似乎总是 8 个连接。我正在使用 Jedis 驱动程序,属性maxTotal
设置为 200,所以我希望看到 (200)*(~25 个实例) = ~5000 个连接。
我该如何调试?我应该如何为我的应用创建更多与 Redis 的连接?