在slurm 中, 当PreemptType=preempt/qos 时, QoS优先级高的job 没有发生抢占,为什么? 而是在经过一段时时间后, 以timeslic方式执行,为什么 ?
时间: 2024-02-29 20:55:29 浏览: 112
当PreemptType=preempt/qos时,Slurm会首先考虑QoS的优先级来判断是否进行抢占。如果有比当前正在运行的任务优先级更高的QoS任务等待运行,当前任务可能会被抢占。但是,如果已经有一个高优先级的QoS任务在等待运行,而当前正在运行的任务是较低优先级的,那么当前任务不会立刻被抢占,而是会被调度程序以timeslice方式执行一段时间,以确保当前任务完成一定量的工作,然后再将CPU资源分配给高优先级的任务。这样可以避免资源的浪费和任务的频繁切换,提高整个系统的效率。
相关问题
在slurm 中, 当PreemptType=preempt/qos 时, 一个高优先级JOB 没有抢占低优先级JOB, 为什么 ?
在Slurm中,PreemptType=preempt/qos时,一个高优先级JOB没有抢占低优先级JOB的原因可能是因为低优先级JOB已经被分配了足够的资源,而高优先级JOB所需要的资源已经不足以满足其需求,因此无法抢占低优先级JOB。此外,也有可能是由于Slurm中的调度算法在考虑抢占时,同时考虑了任务的优先级以及当前任务所占用的资源情况,因此在某些情况下,高优先级JOB也可能无法抢占低优先级JOB。
在slurm 中, 当PreemptType=preempt/qos 时,一个 job的初始优先级 InitPrio 高于其它jobs ,但是不能发生抢占,原因在哪?
当PreemptType=preempt/qos时,一个job的初始优先级InitPrio高于其他job,但不能发生抢占的原因是因为PreemptType=preempt/qos是一种基于QOS的抢占策略。这种策略是基于预定义的QOS级别,每个job都会被分配一个QOS级别,该级别决定了job的优先级。在这种情况下,一个job的InitPrio仅仅是用来指定该job的初始QOS级别,它并不会影响job的抢占。换句话说,一个job的InitPrio高并不意味着它会抢占其他job,只有在它的QOS级别高于其他job时,才会发生抢占。因此,当PreemptType=preempt/qos时,一个job的InitPrio高于其他job,但不能发生抢占。
阅读全文