mirror of
https://github.com/VictoriaMetrics/VictoriaMetrics.git
synced 2024-12-15 08:23:34 +01:00
2b7b3293c1
`TCP_USER_TIMEOUT` (since Linux 2.6.37) specifies the maximum amount of time that transmitted data may remain unacknowledged before TCP will forcibly close the connection and return `ETIMEDOUT` to the application. Setting a low TCP user timeout allows RPC connections quickly reroute around unavailable storage nodes during network interruptions.
13 lines
256 B
Go
13 lines
256 B
Go
package netutil
|
|
|
|
import (
|
|
"golang.org/x/sys/unix"
|
|
"syscall"
|
|
"time"
|
|
)
|
|
|
|
func setTCPUserTimeout(fd uintptr, timeout time.Duration) error {
|
|
return syscall.SetsockoptInt(
|
|
int(fd), syscall.IPPROTO_TCP, unix.TCP_USER_TIMEOUT, int(timeout.Milliseconds()))
|
|
}
|