Redis
 sql >> Baza danych >  >> NoSQL >> Redis

Przekroczono limit połączenia/rozmiaru bufora Redis

Udało mi się zduplikować ten sam problem przekroczenia limitu rozmiaru bufora za pomocą ServiceStack. Kod do wykonania testów warunków skrajnych jest tutaj - uruchom 20 instancji aplikacji przez co najmniej 20 minut. https://github.com/ServiceStack/ServiceStack.Redis/commit/b01582f9c873f375794c04d46aad400590ca5bf3

Pierwszym błędem, który możesz zobaczyć, jest „Nie można połączyć się z instancją redis” opisanym przez Redis nie może połączyć się przy zajętym obciążeniu, ale jeśli rozwiniesz wyjątek wewnętrzny, zobaczysz „Nie można wykonać operacji na gnieździe, ponieważ systemowi brakowało wystarczającego bufora miejsca lub kolejka była pełna"

Mój problem wystąpił w Windows 7, ale nie w Windows Server 2008 rc. Więc zaczynam się zastanawiać, czy to był problem z systemem operacyjnym. Po wysłaniu e-maila do Demisa na ServiceStack stwierdzono, że ServiceStack prawidłowo zamyka gniazda. Patrząc na system operacyjny, problem został rozwiązany poprzez ustawienie TcpTimeWaitDelay i MaxUserPort.

Więcej referencji. TcpTimeWaitDelay do 45 sekund

i MaxUserPorthttp://mashijie.blogspot.com/2009/05/change-default-setting-of-tcp-ports.html

Dostosowałem zakres portów do 1025-64511




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Redis - tabele Lua jako wartości zwracane - dlaczego to nie działa?

  2. Redis vs. MongoDB:porównywanie baz danych w pamięci za pomocą mechanizmu pamięci Percona

  3. doRedis zwraca błędy w systemie Windows 8 x64 dla różnych wersji serwera Redis

  4. Jak mogę zabezpieczyć hasłem moją trasę /sidekiq (tj. wymagać uwierzytelnienia dla narzędzia Sidekiq::Web)?

  5. Jak poznać typ danych wartości danego klucza?