Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Microsoft Azure中托管的.NET CORE API应用程序超时异常(Redis缓存、SQL、.NET CORE)_C#_.net Core_Azure Redis Cache_Vnet - Fatal编程技术网

C# Microsoft Azure中托管的.NET CORE API应用程序超时异常(Redis缓存、SQL、.NET CORE)

C# Microsoft Azure中托管的.NET CORE API应用程序超时异常(Redis缓存、SQL、.NET CORE),c#,.net-core,azure-redis-cache,vnet,C#,.net Core,Azure Redis Cache,Vnet,我拥有以下基础设施: .NET核心3.1 API,托管在VNet中。在VNet内部,我们有8台服务器,带有负载平衡器+SQL Server+Redis缓存 我们正在登录操作上每秒运行API负载测试1200操作(这不是轻量级操作)。此时,所有服务器上的负载为5-10%。但问题是我们遇到了API超时和Redis超时问题 好像有什么东西挡住了我们的思路 这是我的Startup.cs(我们试图利用价值,但没有成功): 这来自*.csproj文件: <PropertyGroup> <T

我拥有以下基础设施: .NET核心3.1 API,托管在VNet中。在VNet内部,我们有8台服务器,带有负载平衡器+SQL Server+Redis缓存

我们正在登录操作上每秒运行API负载测试1200操作(这不是轻量级操作)。此时,所有服务器上的负载为5-10%。但问题是我们遇到了API超时和Redis超时问题

好像有什么东西挡住了我们的思路

这是我的Startup.cs(我们试图利用价值,但没有成功):

这来自*.csproj文件:

 <PropertyGroup>
<ThreadPoolMinThreads>315</ThreadPoolMinThreads>

315
Update1->Redis发行信息已添加

Redis错误: StackExchange.Redis.RedisTimeoutException:等待响应的超时(出站=0KiB,入站=0KiB,已过10000ms,超时为10000ms),命令=GET,下一步:设置键\u digievents\uuuuuuuuuuuuuuuuuuuuuuuuuuuFreeEvent\u4072,inst:0,qu:0,qs:684,aw:False,rs:ReadAsync,ws:Idle,in:2197285,in:0,in:0,out-pipe:0,out-pipe:0,serverEndpoint:10.0.0.0.34:6379,mc:1/0,经理:10人中的10人可用,客户名称:akssocial27apiapp-xkkb4,IOCP:(忙=0,空闲=1000,最小=1000,最大=1000),工作人员:(忙=430,空闲=32337,最小=315,最大=32767),v:2.1.58.34321 StackExchange.Redis.RedisTimeoutException:等待响应的超时(出站=0KiB,入站=0KiB,已过10000ms,超时为10000ms),命令=GET,下一步:设置键\u digievents\uuuuuuuuuuuuuuuuuuuuuuuuuuuFreeEvent\u4072,inst:0,qu:0,qs:684,aw:False,rs:ReadAsync,ws:Idle,in:2197285,in:0,in:0,out-pipe:0,out-pipe:0,serverEndpoint:10.0.0.0.34:6379,mc:1/0,经理:10人中的10人可用,客户名称:akssocial27apiapp-xkkb4,IOCP:(忙=0,空闲=1000,最小=1000,最大=1000),工作人员:(忙=430,空闲=32337,最小=315,最大=32767),v:2.1.58.34321 在Datadog.Trace.ClrProfiler.Integrations.StackExchange.Redis.ConnectionMultiplexer.ExecuteAsyncImplInternal[T](对象多路复用器、对象消息、对象处理器、对象状态、对象服务器、Func`6原始方法)

我很乐意接受任何建议。
提前感谢。

许多人在升级到2.x时会遇到TimeoutException

此解决方案可能会帮助您:

在帖子的末尾,它写道:

在.NETCore中,添加环境变量 COMPlus_ThreadPool_ForceMinWorkerThreads覆盖默认值 MinThreads设置,根据环境/注册表配置 旋钮-也可以使用与相同的ThreadPool.SetMinThreads()方法 如上所述

以下是我随函附上的关于我所问问题的说明。我希望这能帮助别人,节省很多时间

首先,我们没有关于带宽是Azure基础设施瓶颈的例外/错误/报告。这只是我们的假设。但为了反驳这一假设,我们大幅增加了容量,甚至连微软Azure团队都表示,我们的资源调配比使用量过多。 所以带宽从来都不是问题。 这是以下方面的限制:

  • StackExchangeRedis Nuget包,尤其是当它处理更多 数据字节

  • 分析表明,我们称之为许多不必要的行为 该页不需要的页的端点或数据

  • 因此,作为我的观点,我们需要找出一种优化方法,即如何使用StackExchangeRedis包来处理最少且仅必要的数据,以及如何减少对FE上不需要的端点的调用,等等

    我的队友一直在联系开发Stachex Redis的人。开发人员承认,对于巨大的数据块,它有局限性。他还告诉我们,我们不是唯一遇到这个问题的人

    因此,在所有讨论之后,我们优化了对GET/SET操作的调用。它允许我们以一种更精确、更有效的方式处理数据字节,用于必要的端点,从而切断所有不需要的端点和调用。我们还在后端实现了某种压缩

    最后,我们又增加了一些地区,使我们能够改善目前的局势

    尽管如此,我们仍在考虑跳过Redis的使用,转而使用NoSQL解决方案。我们将一次解决几个问题—缓存问题和实时数据+大数据SQL限制(到目前为止,这只是一个想法)

    影响Redis性能的p.S.因素:

    • 在许多现实场景中,Redis的吞吐量在受到CPU限制之前就受到了网络的限制。为了在一台服务器上整合多个高吞吐量Redis实例,值得考虑使用TCP/IP绑定放置一个10 Gbit/s NIC或多个1 Gbit/s NIC
    • CPU是另一个非常重要的因素。Redis是单线程的 支持具有大缓存且核数不多的快速CPU

    Azure最近一直面临短缺问题,我正在Azure中开发一个解决方案,这是一个令人头痛的问题,从Sharepoint检索值这样简单的事情需要13分钟。。。也许这就是你的问题?你得到了什么错误日志?你能发布它吗?超时前有死锁吗?@Dongdong,没有死锁发生。我将用dev-ops团队的错误更新这个问题。目前,我们正在增加Redis的带宽限制。谢谢你的回答!我们尝试降级Redis包并设置环境变量COMPlus_ThreadPool_ForceMinWorkerThreads,但不幸没有成功
     <PropertyGroup>
    <ThreadPoolMinThreads>315</ThreadPoolMinThreads>