调度优先级调整方法技术

技术编号:39602814 阅读:19 留言:0更新日期:2023-12-03 20:03
本申请涉及计算机技术领域,提供了一种调度优先级调整方法

【技术实现步骤摘要】
调度优先级调整方法、装置、设备及存储介质


[0001]本申请涉及计算机
,提供了一种调度优先级调整方法

装置

设备及存储介质


技术介绍

[0002]在面向高性能计算

容器调度

以及实时任务处理等多种应用场景的 Linux 系统中,通过提高特定进程的调度优先级来获得更好的响应速度和性能,是一种重要的系统调优方法

相关技术中,
Linux
系统允许通过修改系统调度器参数

设置进程优先级(
nice 值)或实时调度策略等方式调整进程的调度优先级

但这些方式分别存在以下局限性:
1、
修改系统调度器参数,由于系统调度器参数是全局的调度器参数,调整后可能会影响所有进程,而不是只针对特定进程,因此可能导致系统资源分配不均,从而影响其他进程或系统整体性能

[0003]2、
设置进程优先级(
nice 值),是指使用 nice、renice 等命令调整进程优先级,但这种方式仅适用于非实时任务的调度,对于实时任务就存在调度不够灵活精确的问题

[0004]3、
实时调度策略,是指采用如
SCHED_FIFO 或 SCHED_RR 等实时调度策略的方式调整进程的调度优先级,这种方式尽管可以改善特定进程响应速度,但这可能会导致其他进程(特别是优先级较低的普通进程)性能下降,进而影响整体系统性能

[0005]由此可见,通过上述方式调整某一特定进程的调度优先级时,都可能影响系统中其他进程的计算性能,也即存在无法精确地调整特定进程的调度优先级的问题


技术实现思路

[0006]本申请实施例提供了一种调度优先级调整方法

装置

设备及存储介质,以解决如何更加精确地调整特定进程的调度优先级的问题

[0007]第一方面,本申请实施例提供了一种调度优先级调整方法,包括:响应于针对目标进程触发的优先级调整指令,获取所述目标进程关联的目标
eBPF
程序;其中,所述优先级调整指令用于调整所述目标进程的调度优先级,所述调度优先级与所述目标进程在系统中的内核资源占用数量呈正相关,以及,与所述目标进程的数据处理响应速度呈负相关;将所述目标
eBPF 程序加载至所述系统的内核中,并将所述目标
eBPF 程序中设置的优先级调整函数挂载至内核调度函数;所述优先级调整函数用于调整所述目标进程的调度优先级,所述内核调度函数为所述内核中用于调度进程的函数;运行所述优先级调整函数,基于所述内核调度函数的进程参数,检测所述
Linux
系统的进程运行状态,当所述目标进程被调用时,调整所述目标进程的调度优先级,并基于调整后的调度优先级,调整所述目标进程的内核资源占用数量,以及所述目标进程的数据处理响应速度

[0008]第二方面,本申请实施例还提供了一种调度优先级调整装置,包括:
获取单元,用于响应于针对目标进程触发的优先级调整指令,获取所述目标进程关联的目标
eBPF
程序;其中,所述优先级调整指令用于调整所述目标进程的调度优先级,所述调度优先级与所述目标进程在系统中的内核资源占用数量呈正相关,以及,与所述目标进程的数据处理响应速度呈负相关;加载单元,用于将所述目标
eBPF 程序加载至所述系统的内核中,并将所述目标
eBPF 程序中设置的优先级调整函数挂载至内核调度函数;所述优先级调整函数用于调整所述目标进程的调度优先级,所述内核调度函数为所述内核中用于调度进程的函数;执行单元,用于运行所述优先级调整函数,基于所述内核调度函数的进程参数,检测所述系统的进程运行状态,当所述目标进程被调用时,调整所述目标进程的调度优先级,并基于调整后的调度优先级,调整所述目标进程的内核资源占用数量,以及所述目标进程的数据处理响应速度

[0009]一种可能的实现方式中,所述优先级调整指令还用于在预设时间范围调整所述目标进程的调度优先级;则所述执行单元检测到所述目标进程被调用时,调整所述目标进程的调度优先级,包括:当所述目标进程被调用时,获取所述系统的当前时间;将所述当前时间与所述预设时间范围进行比较,当所述当前时间在所述预设时间范围内时,调整所述目标进程的调度优先级

[0010]一种可能的实现方式中,所述系统为
Linux
系统时,所述内核调度函数为
pick_next_task_fair
函数;则所述执行单元运行所述优先级调整函数,基于所述内核调度函数的进程参数,检测所述
Linux
系统的进程运行状态时,具体用于:运行所述优先级调整函数,获取所述
pick_next_task_fair
函数的进程参数;所述进程参数表征所述
Linux
系统中下一个运行的进程;将所述进程参数与所述目标进程进行匹配,并在满足匹配条件时,确定所述目标进程被调用

[0011]一种可能的实现方式中,所述进程参数包括下一个运行的进程的进程名称;则所述执行单元将所述进程参数与所述目标进程进行匹配,并在满足匹配条件时,确定所述目标进程被调用时,具体用于:将所述进程参数中包括的进程名称与所述目标进程的名称进行字符匹配;在所述进程参数中包括的进程名称与所述目标进程的名称完全匹配时,确定满足匹配条件

[0012]一种可能的实现方式中,所述执行单元将所述进程参数中包括的进程名称与所述目标进程的名称进行字符匹配时,具体用于:将所述进程参数中包括的进程名称与所述目标进程的名称分别作为一个字符串,并将两个字符串对应位置的字符分别进行匹配;在每个位置的字符均匹配时,确定所述进程参数中包括的进程名称与所述目标进程的名称完全匹配

[0013]一种可能的实现方式中,所述执行单元调整所述目标进程的调度优先级时,具体用于:判断所述目标进程的调度优先级的取值是否大于预设调整值;所述调度优先级的取值越大,调度优先级越低;在所述调度优先级的取值大于预设调整值时,将所述调度优先级的取值设置为所述预设调整值

[0014]一种可能的实现方式中,所述加载单元将所述目标
eBPF 程序加载至所述
Linux
系统的内核中,并将所述目标
eBPF 程序中设置的优先级调整函数挂载至内核调度函数之前,所述获取单元还用于:基于所述优先级调整函数和所述内核调度函数,获取用于加载所述
目标
eBPF 程序的加载脚本

则所述加载单元将所述目标
eBPF 程序加载至所述系统的内核中,并将所述目标
eBPF 程序中设置的优先级调整函数挂载至内核调度函数时,具体用于:通本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种调度优先级调整方法,其特征在于,包括:响应于针对目标进程触发的优先级调整指令,获取所述目标进程关联的目标
eBPF
程序;其中,所述优先级调整指令用于调整所述目标进程的调度优先级,所述调度优先级与所述目标进程在系统中的内核资源占用数量呈正相关,以及,与所述目标进程的数据处理响应速度呈负相关;将所述目标
eBPF 程序加载至所述系统的内核中,并将所述目标
eBPF 程序中设置的优先级调整函数挂载至内核调度函数;所述优先级调整函数用于调整所述目标进程的调度优先级,所述内核调度函数为所述内核中用于调度进程的函数;运行所述优先级调整函数,基于所述内核调度函数的进程参数,检测所述系统的进程运行状态,当所述目标进程被调用时,调整所述目标进程的调度优先级,并基于调整后的调度优先级,调整所述目标进程的内核资源占用数量,以及所述目标进程的数据处理响应速度
。2.
根据权利要求1所述的方法,其特征在于,所述优先级调整指令还用于在预设时间范围调整所述目标进程的调度优先级;则所述当所述目标进程被调用时,调整所述目标进程的调度优先级,包括:当所述目标进程被调用时,获取所述系统的当前时间;将所述当前时间与所述预设时间范围进行比较,当所述当前时间在所述预设时间范围内时,调整所述目标进程的调度优先级
。3.
根据权利要求1或2所述的方法,其特征在于,所述系统为
Linux
系统时,所述内核调度函数为
pick_next_task_fair
函数;则所述运行所述优先级调整函数,基于所述内核调度函数的进程参数,检测所述系统的进程运行状态,包括:运行所述优先级调整函数,获取所述
pick_next_task_fair
函数的进程参数;所述进程参数表征所述
Linux
系统中下一个运行的进程;将所述进程参数与所述目标进程进行匹配,并在满足匹配条件时,确定所述目标进程被调用
。4.
根据权利要求3所述的方法,其特征在于,所述将所述进程参数与所述目标进程进行匹配,并在满足匹配条件时,确定所述目标进程被调用,包括:将所述进程参数中包括的下一个运行的进程的进程名称与所述目标进程的名称进行字符匹配;在所述进程参数中包括的进程名称与所述目标进程的名称完全匹配时,确定满足匹配条件
。5.
根据权利要求4所述的方法,其特征在于,所述将所述进程参数中包括的进程名称与所述目标进程的名称进行字符匹配,包括:将所述进程参数中包括的进程名称与所述目标进程的名称分别作为一个字符串,并将两个字符串对应位置的字符分别进行匹配;在每个位置的字符均匹配时,确定所述进程参数中包括的进程名称与所述目标进程的名称完全匹配
。6.
根据权利要求1或2所述的方法,其特征在于,所述调整所述目标进程的调度优先级,
包括:判断所述目标进程的调度优先级的取值是否大于预设调整值;所述调度优先级的取值越大,调度优先级越低;在所述调度优先级的取值大于预设调整值时,将所述调度优先级的...

【专利技术属性】
技术研发人员:周雯程
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1