We are seeing regular errors in our production environment where reads are failing across our farm for several seconds.
The errors we are seeing are as follows:
<11>Sometaro: ERROR Web.Data.EntityStore`1: System.Net.WebException: The underlying connection was closed: An unexpected error occurred on a receive. ---> System.IO.IOException: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host. ---> System.Net.Sockets.SocketException: An existing connection was forcibly closed by the remote host
at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
--- End of inner exception stack trace ---
at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
at System.Net.PooledStream.Read(Byte[] buffer, Int32 offset, Int32 size)
at System.Net.Connection.SyncRead(HttpWebRequest request, Boolean userRetrievedStream, Boolean probeRead)
--- End of inner exception stack trace ---
at System.Net.HttpWebRequest.GetResponse()
at Raven.Client.Connection.HttpJsonRequest.ReadJsonInternal(Func`1 getResponse) in c:\Builds\RavenDB-Stable\Raven.Client.LighWe see these error in our logs at the beginning of the day when most of our users are causing reads from RavenDB. We experience high failure rates for 9-15 seconds every 6 minutes or so right at the beginning of our day.
We are running build 2261 on two EC2 c1.xlarge instances with master-master replication between nodes.
We have the periodic backup job running every 24 hours backing up to the same EBS volumes as the data and indexes. This is something that looks like it is ill-advised and we are looking into moving them to another volume.
So far we have not been watching the performance counts on the database, but we will during the next heavy load time.
We are also considering disabling incremental backups during our next high load time.
What we are seeing in the backup intervals is interesting.
· On the primary instance even though we have not restarted, we have seen the incremental file’s create timestamps move from after the load for the day is gone to several times during the first hour of the day when the site is active.
· On the secondary instance, backup times have also drifted to during high load hours, but we are only getting one dump per day.
Could this shift in backup times be causing our low availability event?
Can you help us with some performance recommendations?
We have previously tested 2261 with EBS provisioned IOPS, but did not see any difference in the read throughput. Should we look into this issue?
It looks like slow GET performance has been improved in build 2340(http://issues.hibernatingrhinos.com/issue/RavenDB-1011), will moving to this version also reduce the number of errors returned from RavenDB?
Is moving the periodic backup to a difference volume the only change in storage or should we also move the indexes to another EBS volume?
What other information should we collect to help find a solution to this issue?
--
You received this message because you are subscribed to the Google Groups "ravendb" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ravendb+u...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
On the server we see a pretty steady stream of these exceptions:Severity: ErrorFacility: RavenDBExceptionMessage: One or more errors occurred.LoggerName: Raven.Database.Server.Abstractions.HttpListenerContextAdpaterFull message: Failed to close responseThe perf counters -- everything but # of concurrent requests stays in single digits. # of concurrent requests seems inaccurate. When the perf counters were installed, the # was around 100. Now it shows 31,800. The database instance has been recycled since then with no impact to this perf counter.The server itself appears to be in good health even when a large # of the errors Colin posted occur. CPU and memory are normal. Network activity is high sometimes, but not always.The majority of the errors come from instances (clients) in a different availability zone than the database. We've disabled replication while we're debugging the issue so just one DB now.Is Raven using persistent HTTP connections? Is there a way to configure the client or server to force the use of HTTP 1.0 and/or disable the use of persistent HTTP connections?Thanks
Unhandled Exception: System.Net.HttpListenerException: An
operation was attempted on a nonexistent network connection
at
System.Net.HttpResponseStream.Write(Byte[] buffer, Int32 offset, Int32 size)
at
Raven.Database.Util.Streams.BufferPoolStream.InternalFlush() in c:\Builds\RavenDB-Stable\Raven.Database\Util\Streams\BufferPoolStream.cs:line
69
at
Raven.Database.Util.Streams.BufferPoolStream.Flush() in c:\Builds\RavenDB-Stable\Raven.Database\Util\Streams\BufferPoolStream.cs:line
61
at
Raven.Database.Server.HttpServer.GetContext(IAsyncResult ar) in c:\Builds\RavenDB-Stable\Raven.Database\Server\HttpServer.cs:line
474
at
System.Net.LazyAsyncResult.Complete(IntPtr userToken)
at
System.Net.ListenerAsyncResult.IOCompleted(ListenerAsyncResult asyncResult,
UInt32 errorCode, UInt32 numBytes)
at
System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32 errorCode,
UInt32 numBytes, NativeOverlapped* pOVERLAP)