[ 
https://issues.apache.org/jira/browse/YUNIKORN-333?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Weiwei Yang updated YUNIKORN-333:
---------------------------------
    Description: 
The problem today is we are publishing too many events to K8s.
If you look at the code: 
https://github.com/apache/incubator-yunikorn-k8shim/blob/86cc199c00d44c1dde71c9f2faf5bc17ff28bbb7/pkg/plugin/predicates/predictor.go#L303-L304,
 this is called in the core scheduling logic upon each allocation, which could 
happen thousands of times per sec. For example, if a pod could not be allocated 
onto any of the nodes due to some node taints, it runs a while and we will see 
a huge number of dup events when we do "kubectl describe pod". So this gives us:

 - good: we do not lose any of events, all pushed to K8s
 - bad: overhead to the K8s event system (but gladly it aggregates the dup 
events)

I think there are a few options we can evaluation:
- Shall we cache such events via the event cache system, and then push them in 
1s interval just like what we have done for headRoom check?
- Add some rate-limit mechanism to reduce number of dup events

could you pls take a look and let me know your thought. thanks!


  was:
Currently the shim publishes pod events whenever there is a predicate 
evaluation failure. This is not efficient, we usually can see huge number of 
times that events got logged. We need to reduce the overhead.




> Reduce the number events published to K8s event system when predicate fails
> ---------------------------------------------------------------------------
>
>                 Key: YUNIKORN-333
>                 URL: https://issues.apache.org/jira/browse/YUNIKORN-333
>             Project: Apache YuniKorn
>          Issue Type: Sub-task
>          Components: core - scheduler
>            Reporter: Adam Antal
>            Assignee: Adam Antal
>            Priority: Major
>
> The problem today is we are publishing too many events to K8s.
> If you look at the code: 
> https://github.com/apache/incubator-yunikorn-k8shim/blob/86cc199c00d44c1dde71c9f2faf5bc17ff28bbb7/pkg/plugin/predicates/predictor.go#L303-L304,
>  this is called in the core scheduling logic upon each allocation, which 
> could happen thousands of times per sec. For example, if a pod could not be 
> allocated onto any of the nodes due to some node taints, it runs a while and 
> we will see a huge number of dup events when we do "kubectl describe pod". So 
> this gives us:
>  - good: we do not lose any of events, all pushed to K8s
>  - bad: overhead to the K8s event system (but gladly it aggregates the dup 
> events)
> I think there are a few options we can evaluation:
> - Shall we cache such events via the event cache system, and then push them 
> in 1s interval just like what we have done for headRoom check?
> - Add some rate-limit mechanism to reduce number of dup events
> could you pls take a look and let me know your thought. thanks!



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to