{"title":"多处理器系统的分层CPU调度,公平CPU调度和进程隔离","authors":"K. Korotaev","doi":"10.1109/CLUSTR.2005.347085","DOIUrl":null,"url":null,"abstract":"Summary form only given. Modern multi-user systems are able to run concurrently hundreds of applications, but provide little isolation between users. Absence of isolation can result in a poor performance for some users or accidental or intentional denial-of-service. In modern computational clusters these issues are usually prevented with the help of jobs and job schedulers, which postpone a job and schedule it later, when resources are available. The author proposes to extend CPU/job schedulers to meet interactive multi-user system requirements where application latencies should be low enough (< 1 sec) and at the same time provide isolation between users or group of processes and quality-of-service control. As an example, such scheduler can be used for running virtual private servers on top of cluster or NUMA system. Most models developed so far (e.g. (Chandra et al., 2000)) propose hierarchical CPU schedulers based on SFQ-like algorithms (for fairness between process groups) and standard OS scheduler (for processes inside the groups). Such multilevel schedulers imply independence of internal schedulers, i.e. independence of their scheduling decisions. This results in a number of problems and inefficiencies (Korotaev and Savochkin, 2005) when fair scheduler and Linux O(1)-scheduler are stacked together (e.g. fair scheduler should take into account load on per-CPU runqueues, etc.). The author extended the model of hierarchical CPU schedulers with a new scheduling level called virtual CPU scheduler (Korotaev and Savochkin, 2005). This new middle level allows top-level fair scheduler to be independent in its decisions from standard CPU scheduler and introduces the notion of virtual and physical CPUs. Top level fair scheduler makes its decisions about scheduling virtual CPUs on physical CPUs, then middle-level scheduler selects a virtual CPU and standard Linux scheduler selects a process from virtual CPU runqueue. Additionally the author proposes some new CPU scheduler QoS parameters such as a parameter for limiting CPU a user can get even if there are spare CPU resources. Such QoS parameters provide better control over CPU apportioning and allow limiting user to some CPU shares. As an example, this can be used for limiting user's CPU consumption to the paid share of all CPUs power","PeriodicalId":255312,"journal":{"name":"2005 IEEE International Conference on Cluster Computing","volume":"1 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2005-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"6","resultStr":"{\"title\":\"Hierarchical CPU Schedulers for Multiprocessor Systems, Fair CPU Scheduling and Processes Isolation\",\"authors\":\"K. Korotaev\",\"doi\":\"10.1109/CLUSTR.2005.347085\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Summary form only given. Modern multi-user systems are able to run concurrently hundreds of applications, but provide little isolation between users. Absence of isolation can result in a poor performance for some users or accidental or intentional denial-of-service. In modern computational clusters these issues are usually prevented with the help of jobs and job schedulers, which postpone a job and schedule it later, when resources are available. The author proposes to extend CPU/job schedulers to meet interactive multi-user system requirements where application latencies should be low enough (< 1 sec) and at the same time provide isolation between users or group of processes and quality-of-service control. As an example, such scheduler can be used for running virtual private servers on top of cluster or NUMA system. Most models developed so far (e.g. (Chandra et al., 2000)) propose hierarchical CPU schedulers based on SFQ-like algorithms (for fairness between process groups) and standard OS scheduler (for processes inside the groups). Such multilevel schedulers imply independence of internal schedulers, i.e. independence of their scheduling decisions. This results in a number of problems and inefficiencies (Korotaev and Savochkin, 2005) when fair scheduler and Linux O(1)-scheduler are stacked together (e.g. fair scheduler should take into account load on per-CPU runqueues, etc.). The author extended the model of hierarchical CPU schedulers with a new scheduling level called virtual CPU scheduler (Korotaev and Savochkin, 2005). This new middle level allows top-level fair scheduler to be independent in its decisions from standard CPU scheduler and introduces the notion of virtual and physical CPUs. Top level fair scheduler makes its decisions about scheduling virtual CPUs on physical CPUs, then middle-level scheduler selects a virtual CPU and standard Linux scheduler selects a process from virtual CPU runqueue. Additionally the author proposes some new CPU scheduler QoS parameters such as a parameter for limiting CPU a user can get even if there are spare CPU resources. Such QoS parameters provide better control over CPU apportioning and allow limiting user to some CPU shares. As an example, this can be used for limiting user's CPU consumption to the paid share of all CPUs power\",\"PeriodicalId\":255312,\"journal\":{\"name\":\"2005 IEEE International Conference on Cluster Computing\",\"volume\":\"1 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2005-09-01\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"6\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"2005 IEEE International Conference on Cluster Computing\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1109/CLUSTR.2005.347085\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"2005 IEEE International Conference on Cluster Computing","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/CLUSTR.2005.347085","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 6
摘要
只提供摘要形式。现代多用户系统能够同时运行数百个应用程序,但在用户之间提供很少的隔离。缺乏隔离可能会导致某些用户的性能不佳,或者导致意外或故意拒绝服务。在现代计算集群中,通常通过作业和作业调度器来防止这些问题,作业调度器可以延迟作业,并在资源可用时稍后对其进行调度。作者建议扩展CPU/作业调度器,以满足交互式多用户系统需求,其中应用程序延迟应该足够低(< 1秒),同时提供用户或进程组之间的隔离和服务质量控制。例如,这种调度器可用于在集群或NUMA系统之上运行虚拟专用服务器。迄今为止开发的大多数模型(例如(Chandra et al., 2000))都提出了基于sfq类算法(用于进程组之间的公平性)和标准操作系统调度器(用于组内进程)的分层CPU调度器。这种多层调度器意味着内部调度器的独立性,即它们的调度决策的独立性。当公平调度程序和Linux O(1)调度程序堆叠在一起时,这会导致许多问题和低效率(Korotaev和Savochkin, 2005)(例如,公平调度程序应该考虑每个cpu运行队列的负载等)。作者将分层CPU调度器模型扩展为一个新的调度级别,称为虚拟CPU调度器(Korotaev and Savochkin, 2005)。这个新的中间层允许顶级公平调度器独立于标准CPU调度器的决策,并引入了虚拟和物理CPU的概念。顶级公平调度器决定在物理CPU上调度虚拟CPU,然后中层调度器选择虚拟CPU,标准Linux调度器从虚拟CPU运行队列中选择进程。此外,作者还提出了一些新的CPU调度器QoS参数,如在有空闲CPU资源的情况下限制用户可以获得的CPU的参数。这样的QoS参数可以更好地控制CPU分配,并允许限制用户使用某些CPU共享。例如,这可以用于将用户的CPU消耗限制为所有CPU功率的付费份额
Hierarchical CPU Schedulers for Multiprocessor Systems, Fair CPU Scheduling and Processes Isolation
Summary form only given. Modern multi-user systems are able to run concurrently hundreds of applications, but provide little isolation between users. Absence of isolation can result in a poor performance for some users or accidental or intentional denial-of-service. In modern computational clusters these issues are usually prevented with the help of jobs and job schedulers, which postpone a job and schedule it later, when resources are available. The author proposes to extend CPU/job schedulers to meet interactive multi-user system requirements where application latencies should be low enough (< 1 sec) and at the same time provide isolation between users or group of processes and quality-of-service control. As an example, such scheduler can be used for running virtual private servers on top of cluster or NUMA system. Most models developed so far (e.g. (Chandra et al., 2000)) propose hierarchical CPU schedulers based on SFQ-like algorithms (for fairness between process groups) and standard OS scheduler (for processes inside the groups). Such multilevel schedulers imply independence of internal schedulers, i.e. independence of their scheduling decisions. This results in a number of problems and inefficiencies (Korotaev and Savochkin, 2005) when fair scheduler and Linux O(1)-scheduler are stacked together (e.g. fair scheduler should take into account load on per-CPU runqueues, etc.). The author extended the model of hierarchical CPU schedulers with a new scheduling level called virtual CPU scheduler (Korotaev and Savochkin, 2005). This new middle level allows top-level fair scheduler to be independent in its decisions from standard CPU scheduler and introduces the notion of virtual and physical CPUs. Top level fair scheduler makes its decisions about scheduling virtual CPUs on physical CPUs, then middle-level scheduler selects a virtual CPU and standard Linux scheduler selects a process from virtual CPU runqueue. Additionally the author proposes some new CPU scheduler QoS parameters such as a parameter for limiting CPU a user can get even if there are spare CPU resources. Such QoS parameters provide better control over CPU apportioning and allow limiting user to some CPU shares. As an example, this can be used for limiting user's CPU consumption to the paid share of all CPUs power