복붙노트

[REDIS] 레디 스 연결 / 버퍼 크기 제한을 초과

REDIS

레디 스 연결 / 버퍼 크기 제한을 초과

스트레스는 우리의 응용 프로그램 서버를 테스트하는 동안 우리는 레디 스에서 다음과 같은 예외를 가지고 있습니다 :

연결 제한 레디 스 호스트 포트에 초과가있는 것 같다. 모든 아이디어를 어떻게 Redis.conf 또는 서버 구성을 통해이 임계 값을 증가? 우리는 우분투 서버를 통해 레디 스 인스턴스를 개최했다.

해결법

  1. ==============================

    1.나는 버퍼 크기 제한 같은 문제가 ServiceStack를 사용하여 초과 복제 할 수 있었다. 스트레스 테스트를 수행하는 코드는 여기에있다 - 적어도 20 분 동안 응용 프로그램의 20 개 인스턴스를 실행합니다. https://github.com/ServiceStack/ServiceStack.Redis/commit/b01582f9c873f375794c04d46aad400590ca5bf3

    나는 버퍼 크기 제한 같은 문제가 ServiceStack를 사용하여 초과 복제 할 수 있었다. 스트레스 테스트를 수행하는 코드는 여기에있다 - 적어도 20 분 동안 응용 프로그램의 20 개 인스턴스를 실행합니다. https://github.com/ServiceStack/ServiceStack.Redis/commit/b01582f9c873f375794c04d46aad400590ca5bf3

    에 의해 설명 된대로 볼 수 있습니다 첫 번째 오류는 "레디 스 인스턴스에 연결할 수 없습니다"입니다 바쁜 부하에 연결할 수 없습니다 레디 스,하지만 당신은 당신이 볼 내부 예외를 확장하는 경우 "큐가 가득했다하여 소켓에서 해당 작업을 시스템에 충분한 버퍼 공간이 부족하기 때문에 수행 또는 수 없습니다"

    내 문제는 Window7에 발생,하지만 윈도우 서버 2008 RC. 그래서 나는 그것이 OS에 문제가 있다면보고 시작합니다. ServiceStack에서 Demis를 이메일로 전송 한 후에는 ServiceStack 정확하게 소켓을 닫는 것을 결론을 내렸다. 운영 체제에서 보면, 문제는 TcpTimeWaitDelay과의 MaxUserPort 설정으로 수정되었습니다.

    더 많은 참조. TcpTimedWaitDelay를로 45초

    그리고 MaxUserPort를 http://mashijie.blogspot.com/2009/05/change-default-setting-of-tcp-ports.html

    나는 1025-64511에 포트 범위를 조정

  2. from https://stackoverflow.com/questions/14373769/redis-connection-buffer-size-limit-exceeded by cc-by-sa and MIT license