【发布时间】:2017-04-06 10:01:24
【问题描述】:
我有一个使用 StackExchange.Redis 的分布式 Web 服务 (WCF),每天大约有 500 万个请求。
我有时会收到此错误(有时值可能不同):
System.TimeoutException: 执行 SISMEMBER KeyAllUsersFlag 超时,inst: 7, queue: 6, qu: 0, qs: 6, qc: 0, wr: 0, wq: 0, in: 20, ar: 0, clientName: SERVER、IOCP:(Busy=20,Free=3180,Min=2400,Max=3200),WORKER:(Busy=7,Free=793,Min=400,Max=800),Local-CPU:不可用
在 webconfig 我有:
httpRuntime targetFramework="4.6.1" minFreeThreads="704" minLocalRequestFreeThreads="608"
在我的机器配置上:
processModel maxWorkerThreads="100" maxIoThreads="400" minWorkerThreads="50" minIoThreads="300"
关于 MultiPlexer 的配置我有:
var configurationOptions = new ConfigurationOptions
{
AbortOnConnectFail = false,
SyncTimeout = 2000,
};
我可以做些什么来优化对 redis 的调用,以便快速响应而不出现此错误?
【问题讨论】:
标签: c# wcf redis stackexchange.redis