k8 Cpu-Manager-Policy

  

注:k8版本1.10
k8使用过程中发现java程序启动特别慢的情况,这个原因主要是由于k8 CPU上下文的频繁切换导致的CPU利用率不高。可以通过美丽的cpu-manager-policy来解决这个问题,配置如下。

  

在kubelet的启动参数中加入如下参数:

  

——feature-gates=CPUManager=true——cpu-manager-policy=静态kube-reserved=cpu=1,内存=0

  

重启kubelet   

systemctl重启kubelet   

发现报错

  

1月23日10:49:30 sh-saas-k8s1-node-dev-02 systemd:开始Kubernetes systemd调查。
1月23日10:49:30 sh-saas-k8s1-node-dev-02 kubelet:恐慌:[cpumanager]状态文件:无法恢复状态从磁盘(政策配置“static"!=政策从状态文件“none")
1月23日10:49:30 sh-saas-k8s1-node-dev-02 kubelet:恐慌,因为我们不能保证正常的CPU关联为现有的容器。
1月23日10:49:30 sh-saas-k8s1-node-dev-02 kubelet:请流失这个节点和删除CPU管理器状态文件“/数据/kubernetes kubelet/cpu_manager_state"在重新启动之前Kubelet。
1月23日10:49:30 sh-saas-k8s1-node-dev-02 kubelet: goroutine 1(运行):

  

这个是由于kubelet有个州文件,按照上面的找到那个文件,手动把状态改成静态即可

  

重新启动kubelet,将需要高性能的应用的限制和要求设置成一样,且个cpu数必须为整数个数,这样k8会将应用自动进行cpu绑定,性能会有一个比较大的提升。

k8 Cpu-Manager-Policy