场景:在一个 16 核的节点上,一个 Go 服务/容器运行在一个 pod 和另一个容器中,另一个容器分配了 4 个核心,并且该 go 容器设置为使用GOMAXPROCS.在使用 goroutine 的请求中,Go 程序是否会利用所有可用的 CPU。我认为这取决于GOMAXPROCS,但我不确定它是否只看到在 pod 启动时使用的 1 个核心都在机器上。理想情况下,我希望 CPU 密集型请求使用所有可用的 CPU,但很难测量运行时实际发生的情况(GKE)。kube top显示空闲时的预期:POD NAME CPU(cores) MEMORY(bytes)pod-go-py go-service 1m 862Mipod-go-py py-service 4m 489Mifmt.Println(runtime.NumCPU())显示 16 个内核可用。所以我可以相信 Go 程序会在请求中使用它们?我还想象,当我在节点上扩展 Pod 时,我必须注意节流。
- 1 回答
- 0 关注
- 112 浏览
添加回答
举报
0/150
提交
取消