This channel argument controls the maximum number of pings that can be sent when there is no data/header frame to be sent. gRPC Core will not continue sending pings if we run over the limit. Setting it to 0 allows sending pings without such a restriction. (Note that this is an unfortunate setting that does not agree with A8-client-side-keepalive.md. There should ideally be no such restriction on the keepalive ping and we plan to deprecate it in the future.)
It seems that we'll only send a maximum of 5 pings over the channel if there's no data, which isn't ideal in our case as we'd like to continue sending pings.
Based on my reading of https://github.com/grpc/grpc/blob/master/doc/keepalive.md:
It seems that we'll only send a maximum of 5 pings over the channel if there's no data, which isn't ideal in our case as we'd like to continue sending pings.