Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Configure default HTTP/2 server keep-alives #12498

Merged
merged 1 commit into from
Apr 29, 2024
Merged

Conversation

olix0r
Copy link
Member

@olix0r olix0r commented Apr 24, 2024

HTTP/2 keep-alives enable HTTP/2 servers to issue PING messages to clients to ensure that the connections are still healthy. This is especially useful when the OS loses a FIN packet, which causes the connection resources to be held by the proxy until we attempt to write to the socket again. Keep-alives provide a mechanism to issue periodic writes on the socket to test the connection health.

5760ed2 updated the proxy to support HTTP/2 server configuration and 9e241a7 updated the proxy's Helm templating to support aribtrary configuration. Together, these changes enable configuring default HTTP/2 server keep-alives for all data planes in a cluster.

The default keep-alive configuration uses a 10s interval and a 3s timeout. These are chosen to be conservative enough that they don't trigger false positive timeouts, but frequent enough that these connections may be garbage collected in a timely fashion.

@olix0r olix0r requested a review from a team as a code owner April 24, 2024 22:05
HTTP/2 keep-alives enable HTTP/2 servers to issue PING messages to clients to
ensure that the connections are still healthy. This is especially useful when
the OS loses a FIN packet, which causes the connection resources to be held by
the proxy until we attempt to write to the socket again. Keep-alives provide a
mechanism to issue periodic writes on the socket to test the connection health.

5760ed2 updated the proxy to support HTTP/2 server configuration and 9e241a7
updated the proxy's Helm templating to support aribtrary configuration.
Together, these changes enable configuring default HTTP/2 server keep-alives
for all data planes in a cluster.

The default keep-alive configuration uses a 10s interval and a 3s timeout. These
are chosen to be conservative enough that they don't trigger false positive
timeouts, but frequent enough that these connections may be garbage collected
in a timely fashion.
@olix0r olix0r merged commit 246c62e into main Apr 29, 2024
39 checks passed
@olix0r olix0r deleted the ver/server-keep-alive branch April 29, 2024 20:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants