【教程】Linux设置进程的优先级

转载请注明出处:小锋学长生活大爆炸[xfxuezhagn.cn]

如果本文帮助到了你,欢迎[点赞、收藏、关注]哦~


关键指令

sudo chrt -f <优先级> <指令>

示例脚本

        当然也可以不是启动Python脚本,普通的指令都可以,可自行适当修改。

#!/bin/bash

# 默认参数值
DEFAULT_CHRT_PRIORITY=99
# 必须是绝对路径
DEFAULT_PYTHON="/home/anaconda3/envs/abc/bin/python"
# 脚本名称
DEFAULT_SCRIPT="train.py"

# 解析命令行参数
while getopts "c:p:s:" opt; do
  case $opt in
    c) CHRT_PRIORITY=$OPTARG ;;
    p) PYTHON=$OPTARG ;;
    s) SCRIPT=$OPTARG ;;
    \?) echo "Invalid option -$OPTARG" >&2 ;;
  esac
done

# 设置默认值,如果没有提供参数
CHRT_PRIORITY=${CHRT_PRIORITY:-$DEFAULT_CHRT_PRIORITY}
PYTHON=${PYTHON:-$DEFAULT_PYTHON}
SCRIPT=${SCRIPT:-$DEFAULT_SCRIPT}

# 启动训练脚本并设置实时调度策略和优先级
sudo chrt -f $CHRT_PRIORITY $PYTHON $SCRIPT

# 获取并显示进程ID (PID)
SCRIPT_PID=$!
echo "Started script with PID: $SCRIPT_PID"

参数解释

  • CHRT_PRIORITY=10:设置实时调度策略的优先级为 10。
  • sudo chrt -f $CHRT_PRIORITY $PYTHON $SCRIPT:使用 SCHED_FIFO 调度策略和设置的优先级来启动 Python 脚本。
  • TRAIN_PID=$!:获取最后一个放到后台运行的进程的 PID。
  • echo "Started training script with PID: $TRAIN_PID":显示启动的进程的 PID。

使用示例

sudo bash script.sh -c 50 -p /path/to/your/python -s your_script.py

nice与chrt的区别

        这两个指令都可以用来调整进程的优先级,但略有区别。

nice 命令

  • 功能: nice 命令用于启动一个进程并设置其静态优先级(nice 值)。
  • 优先级范围: nice 值的范围从 -20 到 19,-20 表示最高优先级,19 表示最低优先级。默认值为 0。
  • 调度策略: nice 命令不会更改进程的调度策略,仅调整其在默认调度策略(通常是 CFS,即 Completely Fair Scheduler)中的优先级。
  • 使用场景: 适用于大多数普通用户程序,用于调整程序的优先级,以便系统更合理地分配资源。

chrt 命令

  • 功能: chrt 命令用于设置或更改进程的调度策略和实时优先级。
  • 调度策略: chrt 提供多种调度策略,包括 SCHED_OTHER、SCHED_FIFO、SCHED_RR、SCHED_BATCH、SCHED_IDLE 和 SCHED_DEADLINE。最常用的是实时调度策略 SCHED_FIFO 和 SCHED_RR。
  • 优先级范围: 实时优先级范围从 1 到 99,1 为最低优先级,99 为最高优先级。非实时调度策略通常使用 nice 值。
  • 使用场景: 适用于需要高优先级和严格调度的实时应用程序,例如音频处理、视频处理或其他时间敏感的任务。

非实时调度和实时调度策略的区别

非实时调度策略

        非实时调度策略适用于大多数普通用户程序,操作系统会尽量公平地分配 CPU 时间给所有进程。这些策略包括:

  • SCHED_OTHER: 这是默认的调度策略(也称为 CFS, Completely Fair Scheduler),用于普通进程。
  • SCHED_BATCH: 适用于批处理任务,减少交互性以提高吞吐量。
  • SCHED_IDLE: 适用于最低优先级的任务,只有在系统空闲时才运行。
特点
  • 公平性: 系统尽量公平地分配 CPU 时间给所有进程。
  • 交互性: 优先考虑交互式任务,确保良好的用户体验。
  • 适用性: 适用于大多数普通任务,不需要严格的时间限制。
实时调度策略

        实时调度策略用于需要严格时间限制的任务,保证高优先级任务能够在需要时及时执行。这些策略包括:

  • SCHED_FIFO (First In, First Out): 实时优先级策略,按照优先级顺序执行,具有相同优先级的进程按照先进先出的顺序执行。
  • SCHED_RR (Round Robin): 实时优先级策略,类似于 SCHED_FIFO,但在同一优先级上使用时间片轮转调度。
  • SCHED_DEADLINE: 最严格的实时调度策略,基于任务的绝对截止时间进行调度。
特点
  • 确定性: 高优先级任务可以在需要时及时执行,具有较高的响应性。
  • 严格性: 确保实时任务在规定时间内完成。
  • 适用性: 适用于音频处理、视频处理、机器人控制等需要实时响应的任务。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/713923.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2024/6/16 英语每日一段

Nature has the means--to a degree--to limit the effects of climate change. Intact ecosystems such as forests, grasslands, oceans and peatlands are “carbon sinks”--natural storage systems that remove atmospheric carbon and other greenhouse gases--and are …

Intel HDSLB 高性能四层负载均衡器 — 代码剖析和高级特性

目录 文章目录 目录前言代码剖析软件架构目录结构配置解析启动流程分析数据面 jobs 注册数据面 jobs 执行 转发流程分析收包阶段L2 处理阶段L3 处理阶段L4 处理阶段 高级特性大象流转发优化快慢路径分离转发优化报文基础转发优化 最后参考文档 前言 在前 2 篇文章中&#xff0…

【云原生】Kubernetes----Kubernetes集群部署Prometheus 和Grafana

目录 引言 一、环境准备 二、部署node-exporter &#xff08;一&#xff09;创建命名空间 &#xff08;二&#xff09;部署node-exporter 1.获取镜像 2.定义yaml文件 3.创建服务 4.查看监控数据 三、部署Prometheus &#xff08;一&#xff09;创建账号并授权 &…

Java学习笔记之基本数据类型转换

前言 本篇文章是基于我本人在初学JAVA阶段想记录的的学习笔记&#xff0c;如有错误&#xff0c;恳请指正。今天要干掉的是JAVA的基本数据类型转换 Java的基本数据类型转换 前言一&#xff0c;基本数据类型复习二&#xff0c;基本介绍什么是自动类型转换&#xff1f; 三&#…

【Numpy】一文向您详细介绍 np.round()

【Numpy】一文向您详细介绍 np.round() 下滑即可查看博客内容 &#x1f308; 欢迎莅临我的个人主页 &#x1f448;这里是我静心耕耘深度学习领域、真诚分享知识与智慧的小天地&#xff01;&#x1f387; &#x1f393; 博主简介&#xff1a;985高校的普通本硕&#xff0c;…

从0到1搭建MCU芯片上操作系统环境。开发都需要哪些环节和准备

MCU芯片环境搭建与操作系统上载步骤 1. 硬件准备 选择合适的MCU芯片&#xff0c;例如STM32、GD32等。 准备开发板&#xff0c;用于硬件连接和实验。 准备必要的外围设备&#xff0c;如电源适配器、USB转串口模块等。 2. 软件环境搭建 安装编程语言环境&#xff0c;如C/C编译…

NVIDIA Triton系列02-功能与架构简介

NVIDIA Triton系列02-功能与架构简介 B站&#xff1a;肆十二-的个人空间-肆十二-个人主页-哔哩哔哩视频 (bilibili.com) 博客&#xff1a;肆十二-CSDN博客 问答&#xff1a;(10 封私信 / 72 条消息) 肆十二 - 知乎 (zhihu.com) 前面文章介绍微软 Teams 会议系统、微信软件与腾讯…

微信视频号视频怎么下载才能保存视频到手机相册,推荐一款稳定的视频号下载工具

视频号视频下载发现写了很多次&#xff0c;竟然还有很多人不知道微信视频号视频怎么下载&#xff0c;今天就来说说这款视频号下载工具。 视频号下载工具介绍 这款视频号下载工具叫视频号下载plus&#xff0c;也有很多人称之为视频下载小助手不知道的可以自行百度。 注意在百度…

码住!详解时序数据库不同分类与性能对比

加速发展中的时序数据库&#xff0c;基于不同架构&#xff0c;最流行的类别是&#xff1f; 作为管理工业场景时序数据的新兴数据库品类&#xff0c;时序数据库凭借着对海量时序数据的高效存储、高可扩展性、时序分析计算等特性&#xff0c;一跃成为物联网时代工业领域颇受欢迎的…

SolarLab - hackthebox

简介 靶机名称&#xff1a;SolarLab 难度&#xff1a;中等 靶场地址&#xff1a;https://app.hackthebox.com/machines/SolarLab 本地环境 靶机IP &#xff1a;10.10.11.16 ubuntu渗透机IP(ubuntu 22.04)&#xff1a;10.10.16.17 windows渗透机IP&#xff08;windows11&…

RawChat:优化AI对话体验,全面兼容GPT功能平台

文章目录 一、Rawchat简介1.1 RawChat的主要特性1.2 RawChat的技术原理简述 二、使用教程三、案例应用3.1 图片内容分析3.2 生图演示3.3 文档解析3.4 探索更多 四、小结 一、Rawchat简介 RawChat平台的诞生&#xff0c;其核心理念是降低用户访问类似ChatGPT这类先进AI服务的门…

FPGA - 数 - 加减乘除

一&#xff0c;数的表示 首先&#xff0c;将二进制做如下解释&#xff1a; 2的0次方1 2的1次方2 2的2次方4 2的3次方8 ..... 以此类推&#xff0c;那么任何整数&#xff0c;或者说任意一个自然数均可以采用这种方式来表示。 例如&#xff0c;序列10101001&#xff0c;根据上述…

ThinkPHP邮件发送配置教程?怎么配置群发?

ThinkPHP邮件发送安全性如何保障&#xff1f;ThinkPHP如何实现&#xff1f; 无论是用户注册后的验证邮件&#xff0c;还是订单处理的通知邮件&#xff0c;都需要一个可靠的邮件发送机制。AokSend将详细介绍如何在ThinkPHP框架中配置邮件发送功能&#xff0c;并带您逐步了解其中…

JavaScript常见面试题(一)

文章目录 1. JavaScript有哪些数据类型&#xff0c;它们的区别&#xff1f;2.数据类型检测的方式有哪些3. 判断数组的方式有哪些4.null和undefined区别5.typeof null 的结果是什么&#xff0c;为什么&#xff1f;6.intanceof 操作符的实现原理及实现7.为什么0.10.2 ! 0.3&…

【Go语言】Gin 框架教程

Gin 框架教程 1.第一个 Gin 程序 1.1 Gin 安装 # 执行执行如下操作即可&#xff0c;安装Gin前需要安装Go环境 go get -u -v github.com/gin-gonic/gin # -v&#xff1a;打印出被构建的代码包的名字 # -u&#xff1a;已存在相关的代码包&#xff0c;强行更新代码包及其依赖包…

转让中字头控股集团公司步骤和条件

随着中国经济的不断发展&#xff0c;越来越多的企业开始积极寻求并购和收购机会。其中&#xff0c;国家总局中字头控股集团公司也是一个备受关注的对象。本篇文章将为您详细介绍国家总局中字头控股集团公司的收购流程及要求。详情致电咨询我或者来公司面谈。 中字头公司转让需满…

[DDR4] DDR4 相对 DDR3差异与优势

依公知及经验整理&#xff0c;原创保护&#xff0c;禁止转载。 传送门: 总目录 1 差异总览 出处&#xff1a; https://www.kingston.com.cn/en/memory/ddr4-overview Description 描述DDR3DDR4Advantage 优势电压1.5V1.2V降低内存功耗需求容量512Mb-8Gb4Gb-16Gb更大的 DIMM 容…

AI 定位!GeoSpyAI上传一张图片分析具体位置 不可思议! ! !

&#x1f3e1;作者主页&#xff1a;点击&#xff01; &#x1f916;常见AI大模型部署&#xff1a;点击&#xff01; &#x1f916;Ollama部署LLM专栏&#xff1a;点击&#xff01; ⏰️创作时间&#xff1a;2024年6月16日12点23分 &#x1f004;️文章质量&#xff1a;94分…

快速UDP网络连接之QUIC协议介绍

文章目录 一、QUIC协议历史1.1 问题&#xff1a;QUIC为什么在应用层实现1.2 QUIC协议相关术语1.3 QUIC和TCP对比1.4 QUIC报文格式1.4.1 QUIC报文格式-Stream帧11.4.2 QUIC报文格式-Stream帧2 二、QUIC的特点2.1 连接建立低时延&#xff0c;2.2 多路复用流复用-HTTP1.1流复用-HT…

【OS基础】符合AUTOSAR标准的RTAOS-Alarms详解

目录 前言 正文 7.报警Alarms 7.1配置Alarms 7.1.1激活一个任务 7.1.2 设置一个事件 7.1.3报警回调Alarm Callback 7.1.4 增加计数器值 7.2设置Alarms 7.2.1 绝对Alarms 7.2.2 相对Alarm 7.3自启动Alarms 7.4 删除Alarms 7.5确认何时会发生Alarm 7.6非周期Alarm…