异常消息:超时执行GET allBots,inst:1,mgr: 不活动,错误:从不,队列:7,qu:0,qs:7,qc:0,wr:0,wq:0,in: 65536,ar:0,IOCP :( Busy = 2,Free = 998,Min = 1,Max = 1000),WORKER: (忙碌= 0,免= 2047,最小= 1,最大值= 2047)
超时执行GET stock_by_symbol_leg.to,inst:1,mgr: 不活动,错误:从不,队列:13,qu:0,qs:13,qc:0,wr:0,wq:0, in:0,ar:0,IOCP :( Busy = 3,Free = 997,Min = 1,Max = 1000),WORKER: (忙= 3,免费= 2044,最小= 1,最大值= 2047)
超时执行GET stock_by_symbol_aapl,inst:1,mgr:无效, 错误:从不,队列:13,qu:0,qs:13,qc:0,wr:0,wq:0,in:0,ar: 0,IOCP :( Busy = 3,Free = 997,Min = 1,Max = 1000),WORKER: (忙= 3,免费= 2044,最小= 1,最大值= 2047)
执行GET超时 portefoliosBotById_ec030000-0001-1200-0000-000000000000,inst:1, mgr:不活动,错误:从不,队列:13,qu:0,qs:13,qc:0,wr:0,wq: 0,in:0,ar:0,IOCP :( Busy = 3,Free = 997,Min = 1,Max = 1000),WORKER: (忙= 3,免费= 2044,最小= 1,最大值= 2047)
我正在使用StackExchange.Redis版本1.1.603和最小的Azure实例。我收到了很多GET / SET超时错误。当我在我的盒子上使用Redis服务器本地工作时,我没有这个问题,这让我倾向于在Azure上解决问题。存储在Redis中的信息大约为2kb到10kb。
在Azure门户上,我看到我的连接数低于20,内存使用量约为130meg,cpu使用率低于35%,Redis服务器负载总是低于13%。我没有从门户网站看到任何问题迹象。
我知道在哪里可以获得更多信息来解决这个问题吗?
自我上次发帖以来,我改进了一些设置。
1)我从C0传递到Azure Redis的C1实例。
2)我将连接字符串更改为15秒超时。以下是它的外观:
boursexxxxxxx.windows.net:6380,password=xxxxxxxx,ssl=True,abortConnect=False,connectRetry=5,connectTimeout = 15000,synctimeout = 15000“
3)我创建了一个10个Lazy Loading ConnectionMultiplex池,我在每次调用时都在旋转。
private static readonly Lazy<ConnectionMultiplexer>[] lazyConnection;
//In the static constructor of my cache :
lock (lockPookRoundRobin)
{
lazyConnection = new Lazy<ConnectionMultiplexer>[POOL_SIZE];
var connectionStringCache = System.Configuration.ConfigurationManager.AppSettings["CacheConnectionString"];
for (int i = 0; i < POOL_SIZE; i++)
{
lazyConnection[i] = new Lazy<ConnectionMultiplexer>(() => ConnectionMultiplexer.Connect(connectionStringCache));
}
}
4)我减少了许多缓存的值。根据序列化的对象,我有:
4.1)1.25ko(5%)
4.2)0.154ko(5%)
4.3)26ko(20%)
4.4)700ko(这里我们需要处理,但它仅限于<100个条目)
4.5)5ko(30%)
4.6)66ko(40%)
答案 0 :(得分:2)
看起来您的ThreadPool设置需要调整为described here。
您可能还想查看这些文章,以及它们将帮助您了解人们在使用Redis时遇到的常见问题:
答案 1 :(得分:0)
对于正在阅读该帖子的每个人。我做了一些事情:
在云端,Redis与Web服务不在同一台服务器上,增加了很多开销。