精华内容
下载资源
问答
  • Kubernetes 调度器调度策略配置修改

    千次阅读 2020-10-23 17:12:16
    Kubernetes 调度器的主要作用就是为新创建的 pod ,寻找一个最合适的节点。大概需要经过两个过程: 列出所有可以调度的节点。根据不同的断言(Predicates)实现了过滤接口,过滤出能够调度的节点。 在能够调度的...

    介绍

    Kubernetes 调度器的主要作用就是为新创建的 pod ,寻找一个最合适的节点。大概需要经过两个过程:

    1. 列出所有可以调度的节点。根据不同的断言(Predicates)实现了过滤接口,过滤出能够调度的节点。
    2. 在能够调度的节点中选出最合适的节点。根据不同的优先级(Priorities)实现了打分接口,选出分数最高的节点。

    这些打分接口都配有相关的比重,表示在总分数中的占比。默认值可以在源码 kubernetes-release\pkg\scheduler\algorithmprovider\defaults\register_priorities.go 中获取。有时候我们想要调节某个打分接口的比重,来修改调度器调度策略,从而控制 pod 调度。

    修改配置

    可以通过执行 kube-scheduler --policy-config-file <filename>kube-scheduler --policy-configmap <ConfigMap> 设置并使用调度策略。下面通过指定配置文件的方式来设置修改某个打分接口的比重。

    修改 kube-scheduler.yaml 文件,主要在 command 中添加 - --policy-config-file=/etc/kubernetes/policy.cfg指定配置文件。

    apiVersion: v1
    kind: Pod
    metadata:
      creationTimestamp: null
      labels:
        component: kube-scheduler
        tier: control-plane
        aaa: bbb
      name: kube-scheduler
      namespace: kube-system
    spec:
      containers:
      - command:
        - kube-scheduler
        - --authentication-kubeconfig=/etc/kubernetes/scheduler.conf
        - --authorization-kubeconfig=/etc/kubernetes/scheduler.conf
        - --bind-address=127.0.0.1
        - --kubeconfig=/etc/kubernetes/scheduler.conf
        - --leader-elect=true
        - --policy-config-file=/etc/kubernetes/policy.cfg
        image: registry.aliyuncs.com/google_containers/kube-scheduler:v1.17.12
        imagePullPolicy: IfNotPresent
        livenessProbe:
          failureThreshold: 8
          httpGet:
            host: 127.0.0.1
            path: /healthz
            port: 10259
            scheme: HTTPS
          initialDelaySeconds: 15
          timeoutSeconds: 15
        name: kube-scheduler
        resources:
          requests:
            cpu: 100m
        volumeMounts:
        - mountPath: /etc/kubernetes/scheduler.conf
          name: kubeconfig
          readOnly: true
        - mountPath: /etc/kubernetes/policy.cfg
          name: kube-policy-config
          readOnly: true
      hostNetwork: true
      priorityClassName: system-cluster-critical
      volumes:
      - hostPath:
          path: /etc/kubernetes/scheduler.conf
          type: FileOrCreate
        name: kubeconfig
      - hostPath:
          path: /etc/kubernetes/policy.cfg
          type: FileOrCreate
        name: kube-policy-config
    status: {}
    

    policy.cfg 配置文件内容:

    {"kind":"Policy","apiVersion":"v1","priorities":[{"name":"NodeAffinityPriority","weight":100}]}
    

    主要是一个 json 格式的字符串,内容简单明了。当修改完 kube-scheduler.yaml 文件后,pod 会自动重启更新。

    参考

    1. https://kubernetes.io/zh/docs/reference/scheduling/policies/#priorities
    2. https://docs.okd.io/latest/nodes/scheduling/nodes-scheduler-default.html
    展开全文
  • Linux的进行调度策略,一般有如下几种: RR、FIFO、OTHER等三种调度 通过PS命令输出如下:TS/FF/RR 通过命令行实现调整Linux任务调度策略。 以上,XXX

    Linux的进行调度策略,一般有如下几种:

    RR、FIFO、OTHER等三种调度

    通过PS命令输出如下:TS/FF/RR

     

     通过命令行实现调整Linux任务调度策略。

     

     以上,XXX

    展开全文
  • chrt 修改进程的调度策略和优先级

    千次阅读 2018-10-15 09:33:58
    从下图可以看出,目前存在6中调度策略。用chrt命令可以方便的修改进程的调度策略和优先级

    从下图可以看出,目前存在6中调度策略。用chrt命令可以方便的修改进程的调度策略和优先级

    展开全文
  • 概述: 最近接触到关于linux调度的一些相关内容,这里做个...这里记录下怎么查看某个进程或线程的调度策略和优先级,以及怎么修改别的进程或线程的优先级。 快速查看进程优先级和调度策略: 找到某个进程或线程...

    概述:

           最近接触到关于linux调度的一些相关内容,这里做个总结笔记。这里主要学习到三种调度策略,SCHED_RR,SCHED_FIFO,SCHED_OTHER这三种。具体详细的内容就不多说,已经有很多详细的介绍了。这里记录下怎么查看某个进程或线程的调度策略和优先级,以及怎么修改别的进程或线程的优先级。

    快速查看进程优先级和调度策略:

                找到某个进程或线程ID,通过查看此进程或线程下的sched文件查看调度策略和优先级

    函数设置和获取优先级和调度策略(自己写的一个简单程序)

    #include <stdio.h>
    #include <string.h>
    #include <unistd.h>
    #include <dirent.h>
    #include <stdlib.h>
    #include <signal.h>
    #include <fcntl.h>
    #include <time.h>
    #include <sys/types.h>
    #include <sys/stat.h>
    #include <sched.h>
    
    
    #define TYPE_GET		0
    #define TYPE_SET		1
    
    #define SCHED_OTHER		0
    #define SCHED_FIFO		1
    #define SCHED_RR		2
    
    
    static const struct {
    	char name[sizeof("SCHED_OTHER")];
    } policies[] = {
    	{ "SCHED_OTHER" }, /* 0:SCHED_OTHER */
    	{ "SCHED_FIFO" },  /* 1:SCHED_FIFO */
    	{ "SCHED_RR" },    /* 2:SCHED_RR */
    	{ "SCHED_BATCH" }, /* 3:SCHED_BATCH */
    	{ "" },            /* 4:SCHED_ISO */
    	{ "SCHED_IDLE" },  /* 5:SCHED_IDLE */
    	/* 6:SCHED_DEADLINE */
    };
    
    int main(int argc, char **argv)
    {
    	int i = 0, tmp_pid = 0, type = 0;
    	int method = 0, prio = 0;
    	int pol;
    	pid_t pid = 0;
    	
    	if (argc != 3 && argc != 5)
    	{
    		printf("argc is %d not support\n", argc);
    		return -1;
    	}
    	tmp_pid = atoi(argv[1]);
    	type = atoi(argv[2]);
    	pid = tmp_pid;
    	struct sched_param sp;
    	memset((char*)&sp, 0, sizeof(sp));
    	pol = sched_getscheduler(pid);
    	if (pol < 0)
    	{
    		printf("sched_getscheduler error\n");
    		return 0;
    	}
    	if (sched_getparam(pid, &sp))
    	{
    		printf("sched_getparam error\n");
    		return 0;
    	}
    	if (TYPE_SET == type)
    	{
    		if (argc != 5)
    		{
    			printf("argc is %d, param error\n", argc);
    			return -1;
    		}
    		else
    		{
    			method = atoi(argv[3]);
    			if (method < SCHED_OTHER || method > SCHED_RR)
    			{
    				printf("method is %d not support\n", argc);
    				return -1;
    			}
    			prio = atoi(argv[4]);
    			int min = 0, max = 0;
    			min = sched_get_priority_min(method);
    			max = sched_get_priority_max(method);
    			if (prio < min || prio > max)
    			{
    				printf("min is %d max is %d set prio %d not support\n", min, max, prio);
    				return -1;
    			}
    		}
    		printf("SET: %d %d %d %d\n", tmp_pid, type, method, prio);
    		sp.sched_priority = prio;
    		if (sched_setscheduler(pid, method, &sp) < 0)
    		{
    			printf("sched_setscheduler is failed\n");
    			return -1;
    		}
    		printf("Set pid %d's is Success\n", (int)pid);
    	}
    	else
    	{
    		printf("GET: %d %d\n", tmp_pid, type);
    		printf("pid %d's scheduling policy: %s\n", (int)pid, policies[pol].name);
    		printf("pid %d's scheduling priority: %d\n", (int)pid, sp.sched_priority);
    	}
    }

    运行结果:

    特别说明:

           对于调度策略为SCHED_OTHER的进程或线程,通过上诉设置优先级一般是无效的,而且其最大最小值优先级获取是0,如果想要修改优先级则需使用nice函数进行修改。

    参考资料:

            linux进程调度方法(SCHED_OTHER,SCHED_FIFO,SCHED_RR)

            

    展开全文
  • YARN资源调度策略

    2020-11-03 11:12:54
    YARN资源调度策略 YARN 资源调度器是直接从MR基础上修改而来,它提供了三种可用资源调度器 :FIFO Scheduler ,Capacity Scheduler,FairScheduler。 一、调度原理 1.1 FIFO Scheduler FIFO是Hadoop设计之初提供的一...
  • SCHED_OTHER 分时调度策略, SCHED_FIFO实时调度策略,先到先服务 SCHED_RR实时调度策略,时间片轮转 注意: 实时进程将得到优先调用,实时进程根据实时优先级决定调度权值,分时进程则通过nice和counter值...
  • CPU的调度策略

    千次阅读 2019-03-14 22:13:16
    今天见到介绍下CPU处理器的调度策略,自己也还在学习中,后期会继续完善补充,有什么不足希望大家多多指教。 ** 首先介绍下CPU调度的相关概念 ** CPU的调度简单来说,就是当前的进程需要进行的OI操作或者时间片结束...
  • k8s调度策略设置-调度

    千次阅读 2020-08-26 22:27:00
    一、禁止master节点调度 有两种方法,一种是自带的命令(越来越完善了)另一种是通过添加污点来禁止调度。 1、自带命令 cordon 和 uncordon是k8s上的两个维护命令,一般用于节点出现问题时维护使用的。 kubectl ...
  • hadoop默认调度策略I want to change policy of scheduling in Hadoop, how to I can change job order in map reduce automatically. 我想更改Hadoop中的调度策略,如何自动更改map中的作业顺序。 Assume you are ...
  • linux 的调度策略与优先级 参考资料如下: man手册man 7 sched 内核文档 Documentation/scheduler。 首先需要说明,我们常说的进程调度器是传统的说法,但是实际上进程是资源管理的单位,线程才是调度的单位.有时也...
  • LINUX IO调度策略

    千次阅读 2019-09-02 16:52:59
    IO调度策略 IO调度策略一般有btrfs cfq,noop, deadline三种 附录: IO调度器的总体目标是希望让磁头能够总是往一个方向移动,移动到底了再往反方向走,这恰恰就是现实生活中的电梯模型,所以IO调度器也被叫做电梯....
  • Linux CPU调度策略

    千次阅读 2020-03-07 12:15:34
    在谈调度策略前,我们先做一些假设。 每个任务都运行相同的时间 所有任务到达的时间都是一样的 一旦运行了,任务就会运行到完成。 所有的任务只占用cpu资源 任务的运行时间是已知的 这里的...
  • linux调度策略

    千次阅读 2016-12-08 19:44:31
    linux内核的三种主要调度策略: 1,SCHED_OTHER 分时调度策略,  2,SCHED_FIFO实时调度策略,先到先服务  3,SCHED_RR实时调度策略,时间片轮转   实时进程将得到优先调用,实时进程根据实时...
  • 浅析Java的线程调度策略

    千次阅读 2019-03-13 23:52:34
    作者:杨兴强 原文来源:开点工作室(ID:kaidiancs) ...它按照什么样的策略调度Java线程?本文将带着这样的问题,探讨Java线程的调度机制。 程序的问题还是先从代码说起吧,下面是一个广泛...
  • k8s容器调度策略

    千次阅读 2017-01-16 11:46:38
    默认的各个调度的策略权重为1,因此,调度的结果为各个调度策略得分的和,然后按照得分进行排序处理。 通过如上的评判标准,k8s积分制评价出各个节点的得分值,按照得分多少,将容器运行在最佳节点上。 另:节点...
  • 实时系统中混合调度策略的研究(修改Linux内核测试算法).nh
  • Linux应用程序设置进程调度策略

    千次阅读 2017-11-30 15:21:20
    在用户空间,调用sched_setscheduler()函数,函数原型如下: [cpp] view plain ...int sched_setscheduler(pid_t pid, int policy, const struct sched_param *param);...pid: 须指定调度策略进程的pi
  • 通过之前的学习我知道了当前 Linux 系统下任务调度策略主要有三种: 1、SCHED_OTHER:普通任务调度策略。 2、SCHED_FIFO:实时任务调度策略,先到先服务。一旦占用cpu则一直运行,直到有更高优先级任务到达或自己...
  • 设置内核线程的调度策略

    千次阅读 2017-08-26 17:23:58
    调度策略总共分为三种 1:sched_normal 非实时调用,就是常说的cfs,优先值的范围为100~139,有nice值决定 2:sched_fifo 实时调用策略,先到先服务,高优先级的可以抢占第优先级的. 3:sched_RR 实时调用策略,按照...
  • LINUX 进程优先级与调度策略

    千次阅读 2019-11-02 16:17:38
    1. 调度策略 //https://android.googlesource.com/kernel/common/+/refs/heads/android-4.14/include/uapi/linux/sched.h ....... /* * Scheduling policies */ #define SCHED_NORMAL 0 #define SCHED_FIFO 1 #...
  • 进程调度中的所谓调度就是从就绪队列中选择一个进程投入CPU运行,则调度的主战场就是就绪队列,核心是调度算法,实质性的动作是进程的切换。 对于以时间片为主的调度,时钟中断就是驱动力,确保每个进程在CPU上运行...
  • 日期 内核版本 架构 作者 GitHub CSDN 2016-06-14 ...1 前言1.1 进程调度内存中保存了对每个进程的唯一描述, 并通过若干结构与其他进程连接起来.调度器面对的情形就是这样, 其任务是在程序之间共享CPU时间, 创
  • 一,通过设置绘画的RenderThread线程的调度策略来提高性能 默认情况下每个进程的绘画线程RenderThread的调度策略是SCHED_OTHER, 并且优先级为-10. 设置系统属性sys.use_fifo_ui为1后,则表示每个进程的绘画线程...
  • 自适应双环调度策略将先到先服务(FCFS)调度策略下的单循环队列改为具有不同优先级别的双循环队列,同时原来的多个任务共享同一堆栈空间修改为不同任务分级占用两个堆栈,并根据队列中任务时限的变化动态调整两队列...
  • Linux下io磁盘调度策略及配置

    万次阅读 2016-03-09 10:44:54
    I/O 调度算法再各个进程竞争磁盘I/O的时候担当了裁判的角色。他要求请求的次序和时机做最优化的处理,以求得尽可能最好的整体I/O性能。 在linux下面列出4种调度算法 CFQ (Completely Fair Queuing 完全公平的排队)...
  • matlab分时代码智能RGV动态调度策略 #这些是带有随机故障的FMS双系统中项目RGV动态调度策略的代码。 在该项目中,我们研究了具有故障的柔性制造系统的最佳RGV调度策略。 我们将过程分为两种类型的单位周期,并基于...
  • YARN资源调度策略之Capacity Scheduler

    千次阅读 2017-05-08 11:57:46
    yarn默认使用的是最简单的FIFO调度器,即一个default队列,所有用户共享,分配资源也是先到先得,没有优先级之分。有时一两个任务就把资源全占了,其他任务吃不到资源造成饥饿,显然这样的资源分配是不合理的(在...
  • hadoop作业调度策略

    千次阅读 2018-03-16 09:41:32
    hadoop作业调度策略 一个Mapreduce作业是通过JobClient向master的JobTasker提交的(JobTasker一直在等待JobClient通过RPC协议提交作业),JobTasker接到JobClient的请求后把其加入作业队列中。 DataNode节点的...
  • 进程优先级/进程调度策略

    千次阅读 2018-07-12 09:36:50
    http://www.cnitblog.com/flutist1225/articles/19989.html 如何查看/设置/调整进程的... 修改为实时进程: chrt进程的nice值不是进程的优先级,他们不是一个概念,但是进程nice值会影响到进程的优先级变化。 5. ...
  • VMWARE的调度策略

    千次阅读 2018-06-01 18:13:17
    1 vmware的调度相对与linux增加了两个状态,co-start(协同开始)和co-stop(协同停止) 当一个拥有多个vcpus的smp的虚拟机在进行调度时,会使用co-scheduling(协同调度)。就是当满足vcpus个物理cpu资源时。这个...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 105,991
精华内容 42,396
关键字:

如何修改调度策略