Files
zot/pkg/api/runtime.go
T
Doug Rabson 432fde45af Fix building zot natively on FreeBSD (#3247)
fix: allow zot to build on a FreeBSD host (#3246)

The build works as long as the protoc package is installed on the build
host. This also fixes lint checks when building on FreeBSD, working
around common lint complaints caused by the fact that rlim_t is int64 on
FreeBSD.

Signed-off-by: Doug Rabson <dfr@rabson.org>
2025-07-08 15:12:15 +03:00

36 lines
903 B
Go

//go:build !windows
// +build !windows
package api
import (
"os"
"runtime"
"strings"
"syscall"
"zotregistry.dev/zot/pkg/log"
)
// DumpRuntimeParams dumps important runtime state such as file and socket limits.
func DumpRuntimeParams(log log.Logger) {
var rLimit syscall.Rlimit
evt := log.Info().Int("cpus", runtime.NumCPU()) //nolint: zerologlint
err := syscall.Getrlimit(syscall.RLIMIT_NOFILE, &rLimit)
if err == nil {
evt = evt.Uint64("max. open files", uint64(rLimit.Cur)) //nolint: unconvert,gosec // required for *BSD
}
if content, err := os.ReadFile("/proc/sys/net/core/somaxconn"); err == nil {
evt = evt.Str("listen backlog", strings.TrimSuffix(string(content), "\n"))
}
if content, err := os.ReadFile("/proc/sys/user/max_inotify_watches"); err == nil {
evt = evt.Str("max. inotify watches", strings.TrimSuffix(string(content), "\n"))
}
evt.Msg("runtime params")
}