Increase file descriptor limit at startup.

This commit is contained in:
Juliusz Chroboczek
2021-07-29 14:26:41 +02:00
parent 82b10b2c10
commit a78fb6d747
5 changed files with 62 additions and 1 deletions
+7
View File
@@ -0,0 +1,7 @@
// +build windows plan9
package limit
func Nofile(desired uint64) (uint64, error) {
return desired, nil
}
+44
View File
@@ -0,0 +1,44 @@
// +build !windows
// +build !plan9
package limit
import (
"golang.org/x/sys/unix"
)
func Nofile(desired uint64) (uint64, error) {
var old unix.Rlimit
err := unix.Getrlimit(unix.RLIMIT_NOFILE, &old)
if err != nil {
return 0, err
}
if old.Cur >= desired {
return old.Cur, nil
}
if old.Max < desired {
limit := unix.Rlimit{
Cur: desired,
Max: desired,
}
err := unix.Setrlimit(unix.RLIMIT_NOFILE, &limit)
if err == nil {
return limit.Cur, nil
}
desired = old.Max
}
limit := unix.Rlimit{
Cur: desired,
Max: old.Max,
}
err = unix.Setrlimit(unix.RLIMIT_NOFILE, &limit)
if err != nil {
return old.Cur, err
}
return limit.Cur, nil
}