在使用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内核上