tutorial commands aws redis

commands - Redis conexión/límite de tamaño de búfer excedido



redis vs mongodb (1)

Pude duplicar el mismo problema de límite de tamaño de búfer excedido usando ServiceStack. El código para hacer 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, no se puede conectar con carga ocupada , pero si expande la excepción interna, verá "No se pudo realizar una operación porque el sistema carecía de suficiente espacio de búfer o porque una cola estaba llena "

Mi problema ocurrió en Window7, pero no en el servidor de Windows 2008 rc. Entonces empiezo a ver si era un problema de sistema operativo. Después de enviar un correo electrónico a Demis en ServiceStack, se concluyó que ServiceStack estaba cerrando los enchufes correctamente. Al observar el sistema operativo, el problema se solucionó con la configuración de TcpTimeWaitDelay y MaxUserPort.

Más referencias TcpTimeWaitDelay a 45 segundos

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

Ajusté el rango de puertos a 1025-64511

Mientras hacemos pruebas de estrés en nuestro servidor de aplicaciones, tenemos la siguiente excepción de Redis:

ServiceStack.Redis.RedisException: no se pudo conectar a la instancia de redis en redis-host: 6379 ---> System.Net.Sockets.SocketException: no se pudo realizar una operación en un socket porque el sistema no tenía suficiente espacio en el búfer o porque una cola fue redis-host completo: 6379 en System.Net.Sockets.Socket.Connect (direcciones IPAddress [], puerto Int32) en System.Net.Sockets.Socket.Connect (String host, puerto Int32) en ServiceStack.Redis.RedisNativeClient. Connect () --- Fin de la pila de excepción interna trace --- en ServiceStack.Redis.RedisNativeClient.Connect () en ServiceStack.Redis.RedisNativeClient.AssertConnectedSocket () en ServiceStack.Redis.RedisNativeClient.SendCommand (Byte [] [] cmdWithBinaryArgs ) en ServiceStack.Redis.RedisNativeClient.SendExpectData (Byte [] [] cmdWithBinaryArgs) en ServiceStack.Redis.RedisClient.GetValueFromHash (String hashId, String key) en ServiceStack.Redis.Generic.RedisTypedClient 1.GetValueFromHash[TKey](IRedisHash 2 hash , Tecla TKey)

Parece que hay límites de conexión excede en el puerto host redis. ¿Alguna idea de cómo aumentar este umbral a través de Redis.conf O la configuración del servidor? Hemos alojado la instancia de Redis sobre el servidor de Ubuntu.