Bump RLIMIT_NOFILE

We're a TCP server, we'll handle potentially a lot of FDs.

See https://0pointer.net/blog/file-descriptor-limits.html
This commit is contained in:
Simon Ser 2022-02-03 10:27:16 +01:00
parent 4bf50457dc
commit 759013750f
1 changed files with 16 additions and 0 deletions

View File

@ -54,10 +54,26 @@ func newServer() (*tlstunnel.Server, error) {
return srv, nil return srv, nil
} }
func bumpOpenedFileLimit() error {
var rlimit syscall.Rlimit
if err := syscall.Getrlimit(syscall.RLIMIT_NOFILE, &rlimit); err != nil {
return fmt.Errorf("failed to get RLIMIT_NOFILE: %v", err)
}
rlimit.Cur = rlimit.Max
if err := syscall.Setrlimit(syscall.RLIMIT_NOFILE, &rlimit); err != nil {
return fmt.Errorf("failed to set RLIMIT_NOFILE: %v", err)
}
return nil
}
func main() { func main() {
flag.StringVar(&configPath, "config", configPath, "path to configuration file") flag.StringVar(&configPath, "config", configPath, "path to configuration file")
flag.Parse() flag.Parse()
if err := bumpOpenedFileLimit(); err != nil {
log.Printf("failed to bump max number of opened files: %v", err)
}
srv, err := newServer() srv, err := newServer()
if err != nil { if err != nil {
log.Fatalf("failed to create server: %v", err) log.Fatalf("failed to create server: %v", err)