On Wed, Jun 9, 2010 at 9:22 PM, Glynn Clements <glynn@xxxxxxxxxxxxxxxxxx> wrote: > > query wrote: > >> okay..So ,what I can understand is that keep-alives or similar like >> (ClientAliveInterval and ServerAliveInterval) options are never >> going to help to prevent those timeouts . Enabling those options , >> will only adverse the situation . > > Not necessarily. If the problem is caused by connection tracking > expiring the connection, keep-alives may prevent this from happening, > although the default settings for TCP keep-alives are probably > insufficient. > >> So , if the client host is busy for a long time and is not able to >> send any messages to the SSH server , then the server will drop the >> connection assuming that the client has crashed for whatever reason >> if keep-alives like options are enabled . > > Yes, for SSH keep-alives. TCP keep-alives are handled by the kernel, > and only require that the host is functioning and connected. Even if > the ssh or sshd processes were completely suspended (in the sense of > "kill -STOP ..."), TCP keep-alives will continue to be sent and/or > acknowledged. > >> On the other hand , if >> keep-alive option is disabled , the server is never going to drop the >> SSH connection even if the client crashes or 100% busy ( could not >> send a message to the server) or idle . The SSH connection drop was >> initiated by the kernel as you mentioned in your first comment and we >> can do nothing on the SSH configurations to avoid those timeouts. > > If the problem is due to connection tracking, enabling frequent > keep-alives should prevent the connection from expiring. However, this > can cause a connection to be dropped if the system is under heavy > load, even if the connection is otherwise idle. The risk can be > reduced by increasing the value for the ClientAliveCountMax or > ServerAliveCountMax options, so that the connection is only dropped if > the process stops responding for an extended period. okay..Thanks for the clarification . Since the host sometimes continues to remain busy for around 2 hours , so the ClientAliveCountMax should be a high value in our case . ========== cpu mem Time %util %util 06/07-23:00 - - 100.0 17.4 06/07-23:30 - - 100.0 18.1 06/08-00:00 - - 100.0 18.0 06/08-00:30 - - 100.0 17.4 ========= Since I am not sure of the connection tracking timeout value , So , I am planning to put a value of (ClientAliveInterval and ServerAliveInterval) to be 300 secs and CountMax value to be 24 so that even in the worst case of high load , it continues to send message to the server so that the connection does not break. Since in our case , both the client and server remains busy at the same time , so I am planning to use the option on both the client and server , so that either of it can send a send a SSH keep alive message to inform the router that the connection is alive. But I hope it will not add any extra load on the server since already the CPU is 100% high . Thanks Zaman > > -- > Glynn Clements <glynn@xxxxxxxxxxxxxxxxxx> > -- To unsubscribe from this list: send the line "unsubscribe linux-admin" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html