如何使Pod独占CPU内核

在使用docker时,可以通过参数 cpuset 把容器绑定到某个 cpu 内核上

在这种情况下,由于操作系统在 CPU 之间进行上下文切换的次数大大减少,因此容器里应用的性能会大幅提升。

事实上,cpuset 方式是生产环境中部署在线应用类型的pod的一种常用方式

要在Kubernetes上使用类似docker cpuset 的功能,需要满足以下两个条件

使用所在Pod的QoS是 Guaranteed 的
把requests和limits设置成相同的值,比如2

spec:
  containers:
  - name: nginx
    image: nginx
    resources:
      limits:
        memory: "200Mi"
        cpu: "2"
      requests:
        memory: "200Mi"
        cpu: "2"

这样,上面的pod会被绑定到两个独占的cpu内核上

Send a Message