Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

pod运行完成后,插件更新gpu池不及时。当有多个pending的pod排队分配资源时,最后一个pod会一直等到flushUnschedulablePodsLeftover才会重新分配资源 #187

Open
huiyangz opened this issue Sep 7, 2022 · 0 comments

Comments

@huiyangz
Copy link

huiyangz commented Sep 7, 2022

  • 现象:同时创建多个pod,因为资源不足会排队等待k8s分配资源。最后一个pending的pod在新版本的k8s下,会额外等待5分钟才能申请到资源.
  • 原因
    • gpushare-scheduler-extender插件是监听k8s的pod event来更新自己的gpu资源池
    • 最后一个pod申请插件的filter时,插件还没有处理完上一个pod 完成的event来释放资源,所以这时候filter是失败的。
    • unschedulablePods队列中的pod没有机会触发重试,只能等5分钟一轮的flushUnschedulablePodsLeftover(旧版本k8s是1分钟)
  • 备注
    • k8s有很多种情况下,会尝试把unschedulablePods放入backoffQ或activeQ,其中最重要的就是当节点删除Pod缓存时会触发movePodsToActiveOrBackoffQueue,所以pending状态的pod在前一个pod执行完后,会马上重试分配资源。
    • k8s还有一个机制,就是5分钟定时触发flushUnschedulablePodsLeftover,重试所有的unschedulablePods
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant