【发布时间】:2019-10-05 08:41:29
【问题描述】:
我有一个生产中的 Web 应用程序 (.Net Core),我将它作为应用程序服务部署在 Azure 中,它位于高级层 p2v2 4 实例中。我还使用 Azure Redis 缓存(高级层),我的应用程序将其用作缓存。我为负载平衡配置了两个应用服务(主要和次要)流量管理器。
每当我尝试使用交换槽功能将我的应用程序部署到生产环境中时,应用程序服务响应时间都会上升到 20 秒,并且下降了大约 1 分钟,而我的 CPU 利用率接近 90%。我看到来自 Redis 客户端的多个异常(例如:没有可用于服务此操作的连接:EVAL;无法连接到 Redis 服务器。要创建断开连接的多路复用器,请禁用 AbortOnConnectFail。ConnectTimeout;IOCP : (Busy=0,Free=1000,Min=8,Max=1000), WORKER: (Busy=452,Free=32315,Min=8,Max=32767), Local-CPU: n/a) 和我的 HttpQueue长度超过 10
我可以从上图推断是工作线程已经超载,不知道为什么会发生
我正在使用 .Net StackExchange Redis 客户端 2.0.601 版,最近从 1.2.4 版进行了更新
注意: 我没有使用特定于插槽的应用设置。 在部署期间,每个交换槽都会不断发生这种情况 我在日志中没有发现任何应用服务重启。
我想知道你们中的任何人都面临这个问题,如果是,请告诉我问题出在哪里或如何调试,如果你能分享你尝试过的任何东西也会更好。
我试图在 AZure Redis 缓存服务器中查找任何错误日志,但找不到任何错误日志。
我正在尝试找出导致此问题的原因,如何使用 azure 调试此类问题,以及是否有人遇到相同问题并针对相同问题实施了任何解决方案?
如果您需要任何其他详细信息,请告诉我。
【问题讨论】:
标签: azure .net-core redis azure-web-app-service stackexchange.redis