2017-11-29 9 views
0

Redis를 사용하여 응용 프로그램에서 시간 초과가 발생했습니다. 이미 조사되었지만 성공하지 못했습니다. 아래 시간 초과 오류를 확인하십시오.StackExcange.Redis.RedisTimeoutException

StackExchange.Redis.RedisTimeoutException: Timeout performing GET USERORGANIZATIONS_D96510A4-A9A2-4DAA-84A9-BB77363DD3EA, inst: 9, mgr: ProcessReadQueue, err: never, queue: 24, qu: 0, qs: 24, qc: 0, wr: 1, wq: 1, in: 65536, ar: 1, clientName: RD00155D008B42, serverEndpoint: Unspecified/xxxxxxx.redis.cache.windows.net:xxxx, keyHashSlot: 9735, IOCP: (Busy=0,Free=1000,Min=4,Max=1000), WORKER: (Busy=27,Free=32740,Min=200,Max=32767) (Please take a look at this article for some common client-side issues that can cause timeouts: http://stackexchange.github.io/StackExchange.Redis/Timeouts) 

자세한 내용이 필요하면 알려주십시오. 미리 감사드립니다.

답변

1

제한 시간의 "in : 65536"값이 매우 높습니다. 이 값은 클라이언트의 소켓 커널 버퍼에있는 데이터의 양을 나타냅니다. 이는 데이터가 로컬 시스템에 도착했지만 아직 응용 프로그램 계층에서 읽지 않았 음을 나타냅니다. 이것은 일반적으로 1) 스레드 풀 설정을 조정해야하거나 2) 클라이언트 CPU가 높게 실행될 때 발생합니다. 여기에 내가 읽고 제안 몇 가지 기사는 다음과 같습니다

Diagnosing Redis errors on the client side

Azure Redis Best Practices

+0

IOCP 미세 권리는 무엇입니까? Busy = 0, Min = 4이거나 최소 IOCP를 100과 같게해야합니까? 근로자가 늘리거나 줄여야합니까? –

+0

아마도 IOCP와 Worker 모두 Min 카운터를 200으로 증가시켜야 할 것입니다. –