diff --git a/internal/ingress/controller/nginx.go b/internal/ingress/controller/nginx.go index 6ce3fb3cd..4d4c3328c 100644 --- a/internal/ingress/controller/nginx.go +++ b/internal/ingress/controller/nginx.go @@ -527,7 +527,7 @@ func (n *NGINXController) OnUpdate(ingressCfg ingress.Configuration) error { if err != nil { wp = 1 } - maxOpenFiles := (sysctlFSFileMax() / wp) - 1024 + maxOpenFiles := (rlimitMaxNumFiles() / wp) - 1024 klog.V(3).Infof("Maximum number of open file descriptors: %d", maxOpenFiles) if maxOpenFiles < 1024 { // this means the value of RLIMIT_NOFILE is too low. diff --git a/internal/ingress/controller/util.go b/internal/ingress/controller/util.go index 4046d02f7..253989708 100644 --- a/internal/ingress/controller/util.go +++ b/internal/ingress/controller/util.go @@ -64,9 +64,8 @@ func sysctlSomaxconn() int { return maxConns } -// sysctlFSFileMax returns the maximum number of open file descriptors (value -// of fs.file-max) or 0 in case of error. -func sysctlFSFileMax() int { +// rlimitMaxNumFiles returns hard limit for RLIMIT_NOFILE +func rlimitMaxNumFiles() int { var rLimit syscall.Rlimit err := syscall.Getrlimit(syscall.RLIMIT_NOFILE, &rLimit) if err != nil { diff --git a/internal/ingress/controller/util_test.go b/internal/ingress/controller/util_test.go index de85e783a..d1e5daf28 100644 --- a/internal/ingress/controller/util_test.go +++ b/internal/ingress/controller/util_test.go @@ -20,8 +20,8 @@ import ( "testing" ) -func TestSysctlFSFileMax(t *testing.T) { - i := sysctlFSFileMax() +func TestRlimitMaxNumFiles(t *testing.T) { + i := rlimitMaxNumFiles() if i < 1 { t.Errorf("returned %v but expected > 0", i) }