You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@yunikorn.apache.org by "Peter Bacsko (Jira)" <ji...@apache.org> on 2023/05/05 12:05:00 UTC

[jira] [Assigned] (YUNIKORN-1724) Improve the performance of shim side scheduling cycle

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

Peter Bacsko reassigned YUNIKORN-1724:
--------------------------------------

    Assignee: Peter Bacsko

> Improve the performance of shim side scheduling cycle
> -----------------------------------------------------
>
>                 Key: YUNIKORN-1724
>                 URL: https://issues.apache.org/jira/browse/YUNIKORN-1724
>             Project: Apache YuniKorn
>          Issue Type: Sub-task
>          Components: shim - kubernetes
>            Reporter: Peter Bacsko
>            Assignee: Peter Bacsko
>            Priority: Major
>
> Performance testing of Yunikorn uncovered that a lot of time is spent in {{Application.Schedule()}} in the shim. The problem is related to the fact that we collect task objects based on their state which is maintained by {{{}fsm.FSM{}}}. Even though we run {{Application.Schedule()}} once per second, it's still an issue due to the large number of {{RWMutex.RLock()}} calls. With a lot of pods, this consumes significant amount of CPU time.
> Also, different code paths are affected:
> The first is inside the switch-case part in {{{}Schedule(){}}}. We want to know the number of tasks in "New" state and we end up scanning all task objects for their status. 
> The second is retrieving the "New" tasks from {{taskMap}} structure. This is done by {{GetNewTasks()}} / {{{}getTasks(){}}}, copying tasks based on their respective state to a new slice.
> To speed things up, we have to track the "New" tasks in a new map which is dynamically maintained when a new task added and when it leaves the New state (or the task gets removed). This also helps knowing how many of them we have without counting.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@yunikorn.apache.org
For additional commands, e-mail: issues-help@yunikorn.apache.org