K8S Cpu-Manager-Policy

[复制链接]

1275

主题

1275

帖子

1013

积分

金牌会员

Rank: 6Rank: 6

积分
1013
分享到:
发表于 2022-5-26 16:11:33 | 显示全部楼层 |阅读模式
注:K8S版本1.10
K8S使用过程中发现java程序启动特别慢的情况,这个原因主要是由于K8S CPU上下文的频繁切换导致的CPU利用率不高。可以通过K8S的cpu-manager-policy来解决这个问题,配置如下。
在kubelet的启动参数中加入如下参数:
--feature-gates=CPUManager=true --cpu-manager-policy=static --kube-reserved=cpu=1,memory=0
重启kubelet
systemctl restart kubelet
发现报错
Jan 23 10:49:30 sh-saas-k8s1-node-dev-02 systemd: Starting Kubernetes systemd probe.
Jan 23 10:49:30 sh-saas-k8s1-node-dev-02 kubelet: panic: [cpumanager] state file: unable to restore state from disk (policy configured "static" != policy from state file "none")
Jan 23 10:49:30 sh-saas-k8s1-node-dev-02 kubelet: Panicking because we cannot guarantee sane CPU affinity for existing containers.
Jan 23 10:49:30 sh-saas-k8s1-node-dev-02 kubelet: Please drain this node and delete the CPU manager state file "/data/kubernetes/kubelet/cpu_manager_state" before restarting Kubelet.
Jan 23 10:49:30 sh-saas-k8s1-node-dev-02 kubelet: goroutine 1 [running]:
这个是由于kubelet有个state文件,按照上面的找到那个文件,手动把状态改成static即可
重新启动kubelet,将需要高性能的应用的limit和request设置成一样,且cpu个数必须为整数个数,这样K8S会将应用自动进行cpu绑定,性能会有一个比较大的提升。

使用高级回帖 (可批量传图、插入视频等)快速回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则   Ctrl + Enter 快速发布  

发帖时请遵守我国法律,网站会将有关你发帖内容、时间以及发帖IP地址等记录保留,只要接到合法请求,即会将信息提供给有关政府机构。
快速回复 返回顶部 返回列表