CPU资源限制配置是否正确?含多线程CPU相关技术疑问
我承认自己并非CPU领域专家,可能在配置上存在错误。
测试环境
- CPU:Intel Core i5-9300H,官方规格为4核8线程
- Go语言:使用较新版本,版本不影响测试
- gopsutil:Python原生库psutil的Go语言移植版
- Go Docker SDK
通过gopsutil的cpu.Info()接口,检测到存在8个物理线程,每个线程的主频为4100MHz。
func main() { cpus, _ := cpu.Info() // number of cores fmt.Println(len(cpus)) // MHz per CPU fmt.Println(cpus[0].Mhz) }
技术疑问
- 这是否意味着我的CPU总算力为4100×8 MHz?还是仅为4100 MHz?
- 若要为容器分配500MHz算力,应配置值为500还是500×8?
- 我的vCPU数量为多少?
当前我采用如下方式配置CPU限制,假设CPU总算力为4100×8 MHz:
func main() { cpuConstraintInMHz := 500 cpuQuota := cpuConstraintInMHz * 1000 // in kHz cpuPeriod := 100000 // in kHz hostConfig := &container.HostConfig{ Resources: container.Resources{ CPUQuota: int64(cpuQuota), CPUPeriod: int64(cpuPeriod), }, } _ = hostConfig }
内容的提问来源于stack exchange,提问作者Santosh Kumar
相关产品推荐
相关产品推荐

