sql >> Base de Datos >  >> NoSQL >> Redis

Se excedió el límite de tamaño de búfer/conexión de Redis

Pude duplicar el mismo problema de límite de tamaño de búfer excedido usando ServiceStack. El código para realizar la prueba de estrés está aquí:ejecute 20 instancias de la aplicación durante al menos 20 minutos. https://github.com/ServiceStack/ServiceStack.Redis/commit/b01582f9c873f375794c04d46aad400590ca5bf3

El primer error que puede ver es "No se pudo conectar a la instancia de Redis", como lo describe Redis incapaz de conectarse en una carga ocupada, pero si expande la excepción interna, verá "No se pudo realizar una operación en un socket porque el sistema carecía de suficiente búfer". espacio o porque una cola estaba llena"

Mi problema ocurrió en Window7, pero no en Window Server 2008 rc. Así que empiezo a mirar si era un problema del sistema operativo. Después de enviar un correo electrónico a Demis a ServiceStack, se concluyó que ServiceStack estaba cerrando los sockets correctamente. En cuanto al sistema operativo, el problema se solucionó con la configuración de TcpTimeWaitDelay y MaxUserPort.

Más referencias. TcpTimeWaitDelay a 45 segundos

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

Ajusté el rango de puertos a 1025-64511