指定--sysctl参数来设置系统参数,通过这些参数来调整系统性能,Docker通过一个 ValidateSysctl函数来限制 sysctl参数可以传入的项,源码如下:

// docker/opts/opts.go
func ValidateSysctl(val string) (string, error) {    
  validSysctlMap :
= map[string]bool{
  "kernel.msgmax": true,
  "kernel.msgmnb": true,
  "kernel.msgmni": true,   "kernel.sem": true,   "kernel.shmall": true,   "kernel.shmmax": true,
  "kernel.shmmni": true,
  "kernel.shm_rmid_forced": true, } validSysctlPrefixes := []string{ "net.", "fs.mqueue.", }

从源码中可以看出Docker允许调整的包含前缀是kernel.xxx、net和fs.mqueue这三类,使用示例如下:

docker run --sysctl kernel.sem="800 640000 400 800" --sysctl fs.mqueue.msg_max=10000--sysctl kernel.shmmni=40960--sysctl kernel.msgmax=65536 \
--sysctl kernel.msgmnb=84000--sysctl kernel.shmall=2097152--sysctl kernel.shmmax=8405194752 ......

 

转载于:https://www.cnblogs.com/kingsonfu/p/11578615.html

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐