Skip to content
Sam Batschelet edited this page Aug 26, 2018 · 6 revisions

etcd server flags:

--grpc-keepalive-min-time '5s' : Minimum duration interval that a client should wait before pinging server.

 EnforcementPolicy is used to set keepalive enforcement policy on the server-side.
// Server will close connection with a client that violates this policy.
type EnforcementPolicy struct {
	// MinTime is the minimum amount of time a client should wait before sending a keepalive ping.
	MinTime time.Duration // The current default value is 5 minutes.
	// If true, server expects keepalive pings even when there are no active streams(RPCs).
	PermitWithoutStream bool // false by default.
}

--grpc-keepalive-interval '2h': Frequency duration of server-to-client ping to check if a connection is alive (0 to disable). After a duration of this time if the server doesn't see any activity it pings the client to see if the transport is still alive

--grpc-keepalive-timeout '20s': After having pinged for keepalive check, the server waits for a duration of Timeout and if no activity is seen even after that // the connection is closed.

  • note interval and timeout must be greater than 0 or it is disabled.

https://github.com/grpc/grpc-go/blob/e00d24941bcee35dd163f4377d5371349f14baaf/keepalive/keepalive.go#L41-L56

// ServerParameters is used to set keepalive and max-age parameters on the server-side.
type ServerParameters struct {
	// MaxConnectionIdle is a duration for the amount of time after which an idle connection would be closed by sending a GoAway.
	// Idleness duration is defined since the most recent time the number of outstanding RPCs became zero or the connection establishment.
	MaxConnectionIdle time.Duration // The current default value is infinity.
	// MaxConnectionAge is a duration for the maximum amount of time a connection may exist before it will be closed by sending a GoAway.
	// A random jitter of +/-10% will be added to MaxConnectionAge to spread out connection storms.
	MaxConnectionAge time.Duration // The current default value is infinity.
	// MaxConnectinoAgeGrace is an additive period after MaxConnectionAge after which the connection will be forcibly closed.
	MaxConnectionAgeGrace time.Duration // The current default value is infinity.
	// After a duration of this time if the server doesn't see any activity it pings the client to see if the transport is still alive.
	Time time.Duration // The current default value is 2 hours.
	// After having pinged for keepalive check, the server waits for a duration of Timeout and if no activity is seen even after that
	// the connection is closed.
	Timeout time.Duration // The current default value is 20 seconds.
}
3961	242.504673081	192.168.8.49	192.168.8.201	HTTP2	114	PING[0], GOAWAY[0]
P{¯çIRTÒLEd½@@ê¶À¨1À¨É	KÂ~Ê)^ã¼{
rãX'ò	ªtoo_many_pings
Clone this wiki locally