.NET 5 应用程序中 docker linux 容器中的 redis 连接性能问题

Performance issues with redis connections in docker linux container in .NET 5 application

早些时候我在 IIS 中托管了一个 dotnet 核心 Web 应用程序,该应用程序使用 StackExchange.Redis (2.0.601) 客户端与 Redis 交互 对于每个请求,当吞吐量超过每分钟 1k 次调用 Redis 时,它会进行 Redis 获取和设置,平均每次交互需要 1-3 毫秒

现在我们在 docker Linux 容器中托管了相同的应用程序,并开始面临 Redis 中的延迟 当吞吐量超过每分钟 1k 次调用时,每次 Redis 交互需要 40-70 毫秒

我尝试了以下方法但问题没有解决 将 StackExchange.Redis 客户端升级到最新的稳定版本 验证是否与 Redis 建立了多个连接(所有 Redis 交互仅使用一个连接)

增加线程池中的最小工作线程后问题得到解决

program.cs -> ThreadPool.SetMinThreads(workerThreads, completionPortThreads);

实际上,我们使用的报告工具将其显示为延迟,但很少有 redis 超时发生。即使在高负载下增加工作线程后,响应时间也低于 2-3 毫秒。