Linux系统中Go程序的资源限制管理
一 核心维度与常用手段
二 文件描述符限制
* soft nofile 65535
* hard nofile 65535
三 内存限制与回收调优
四 CPU 限制与 GOMAXPROCS
import (
"os"
"github.com/containerd/cgroups"
specs "github.com/opencontainers/runtime-spec/specs-go"
)
control, _ := cgroups.New(cgroups.V1, cgroups.StaticPath("/mygroup"), &specs.LinuxResources{
CPU: &specs.LinuxCPU{Period: ptr.Uint64(100000), Quota: ptr.Int64(5000)},
})
defer control.Delete()
control.Add(cgroups.Process{Pid: os.Getpid()})
select {}
五 诊断与最佳实践