Linux 进程调度管理
文章目录Linux 进程调度管理进程调度器实时调度器非实时调度器管理进程优先级非实时调度策略nice 值nice 值查看nice 命令renice 命令top 命令实时调度策略Linux 进程调度管理进程调度器现代计算机系统中既包含只有单个CPU且任何时候都只能处理单个指令的低端系统到具有几百个cpu、每个cpu有多个核心的高性能超级计算机可以并行执行几百个指令。所有这些系统都有一个共同点系统进程线程数量超出了CPU数量。Linux系统看起来可以同时执行多个进程多个进程轮流使用CPU。内核使用进程调度器决定如何分配CPU时间。为了更好地运行进程调度器必须平衡不同的条件快速决定下个执行的进程确保进程获得公平的CPU时间按时间片轮转10-20ms为1个时间片 按优先级调度允许高优先级进程获取更多的共享CPU时间低优先级进程获取更少的共享CPU时间。进程调度器可粗略分为两类实时调度器系统中重要的进程由实时调度器调度获得CPU能力强。非实时调度器系统中大部分进程由非实时调度器调度获得CPU能力弱。实时调度器实时调度器支持的调度策略SCHED_RRroundrobin 轮询调度策略。相同优先级的进程轮流获取相同的CPU时间。SCHED_FIFO先入先出调度策略。被分配到的CPU时间的进程会一直运行直到被IO阻塞也称为sched_yield会被高优先级进程抢占。实时调度器管理的进程运行优先级范围如下即使系统运行实时调度程序也要保持可响应状态至少ssh可用。管理员可以使用以下两个sysctl参数阻止实时调度策略下运行的程序占用所有CPU时间kernel.sched_rt_runtime_us在kernel.sched_rt_period_us内实时态进程可使用的共享CPU时间默认值950000也就是0.95秒。设置为0实时调度进程将无法获取CPU时间。kernel.sched_rt_period_usCPU分配的周期时间单位us默认值1000000也就是1秒。从kernel.sched_rt_period_us 中减去 kernel.sched_rt_runtime_us 后的剩余时间交给非实时调度器SCHED_NORMAL调度。kernel.sched_rr_timeslice_ms在SCHED_RR调度下的进程每次轮询获取的CPU时间单位ms默认值100也就是0.1秒有效范围1-100。非实时调度器非实时调度器支持的调度策略:SCHED_NORMAL标准的轮询方式时间共享调度也称为SCHED_OTHER。SCHED_BATCH针对批量方式执行的进程策略。不像SCHED_NORMAL频繁竞争任务可以长时间运行。SCHED_IDLE用于执行非常低的优先级应用。使用SCHED_IDLE调度策略运行的进程比nice 19运行的进程优先级还低。管理进程优先级非实时调度策略nice 值常规系统上运行的大多数进程都使用SCHED_OTHER调度策略。由于并非所有进程都同等重要因此可以为使用SCHED_OTHER调度策略运行的程序指定相对优先级称为nice值。有40种不同级别的nice值范围-20最高优先级到19最低优先级nice 值越高代表优先级越低获取CPU能力越弱。nice 值越低代表优先级越高获取CPU能力越强。注意当不存在CPU资源竞争时即使nice值高的进程也可以获得足够CPU资源。nice 值查看top 命令ps命令[ljwserver ~17:28:00]$ps-onice,cmd$(pgrep systemd)NI CMD0/usr/lib/systemd/systemd --switched-root--system--deserialize220/usr/lib/systemd/systemd-journald0/usr/lib/systemd/systemd-udevd0/usr/lib/systemd/systemd-logind默认情况下子进程将继承父进程的nice值通常为0。[ljwserver ~17:28:37]$ps-opid,nice,command$$3649PID NI COMMAND19340-bash36490md5sum /dev/zero# $$ 代表当前终端中运行的 shell 程序 PID实时调度器进程优先级和非实时调度器进程优先级对比如下结论优先级最低的实时调度器进程的优先级高于优先级最高的非实时调度器进程的优先级。nice 命令# nice值默认是10[ljwserver ~17:29:02]$nicemd5sum /dev/zero[2]4306[ljwserver ~18:33:03]$ps-opid,nice,command PID NI COMMAND19340-bash36490md5sum /dev/zero430610md5sum /dev/zero43070ps-opid,nice,command普通用户仅允许使用正数的nice值运行程序。# 设置一个负数优先级[ljwserver ~18:33:19]$nice-n-2md5sum /dev/zero[3]4322[ljwserver ~18:33:50]$ nice: 无法设置优先级: 权限不够[ljwserver ~18:33:56]$ps-opid,nice,command4322PID NI COMMAND43220md5sum /dev/zero# 设置一个正数优先级[ljwserver ~18:34:13]$nice-n2md5sum /dev/zero[4]4324[ljwserver ~18:34:26]$ps-opid,nice,command4324PID NI COMMAND43242md5sum /dev/zerorenice 命令修改进程的优先级。[ljwserver ~18:34:35]$renice-n243224322(进程 ID)旧优先级为0新优先级为2[ljwserver ~18:35:27]$ps-opid,nice,command4322PID NI COMMAND43222md5sum /dev/zero普通用户只能升高进程nice值不能降低。[ljwserver ~18:35:40]$renice-n-24324renice: 设置4324的优先级失败(进程 ID): 权限不够[ljwserver ~18:36:03]$ps-opid,nice,command4324PID NI COMMAND43242md5sum /dev/zero# 使用root用户调整[rootserver ~18:36:29]# renice -n -2 43244324(进程 ID)旧优先级为2新优先级为-2[ljwserver ~18:36:53]$ps-opid,nice,command4324PID NI COMMAND4324-2md5sum /dev/zerotop 命令top 界面查看进程CPU使用率4324和3649CPU使用率非常接近因为优先级一致。在该界面中使用r指令设置进程nice值。终止之前创建的3个md5sum进程。[ljwserver ~18:39:59]$pkillmd5sum[ljwserver ~18:40:05]$jobs[1]已终止 md5sum /dev/zero[2]已终止nicemd5sum /dev/zero[3]- 已终止nice-n-2md5sum /dev/zero[4] 已终止nice-n2md5sum /dev/zero实时调度策略chrt命令用于获取和设置实时调度器进程优先级以及更改进程调度器。# 查看进程优先级范围chrt不能用于调整非实时进程nice值优先级。[ljwserver ~18:40:17]$ chrt-mSCHED_OTHER min/max priority:0/0 SCHED_FIFO min/max priority:1/99 SCHED_RR min/max priority:1/99 SCHED_BATCH min/max priority:0/0 SCHED_IDLE min/max priority:0/0 SCHED_DEADLINE min/max priority:0/0# 以SCHED_RR调度器和优先级为5运行md5sum进程[rootserver ~18:41:37]# chrt -r 5 md5sum /dev/zero [1]4595[rootserver ~18:42:00]# ps -o pid,rtprio,command 4595PID RTPRIO COMMAND45955md5sum /dev/zero#调整为实时运行导致cpu剩余消耗低bashtop等非实时运行会卡顿# 修改进程调度器和优先级[rootserver ~18:42:26]# chrt -f --pid 10 4595[rootserver ~18:42:57]# ps -o pid,cls,rtprio,command 4595PID CLS RTPRIO COMMAND4595FF10md5sum /dev/zero# 修改进程调度器为非实时[rootserver ~18:43:24]# chrt -o --pid 0 4595[rootserver ~18:43:43]# ps -o pid,cls,rtprio,command 4595PID CLS RTPRIO COMMAND4595TS - md5sum /dev/zero

相关新闻

芯片存储架构抉择:片上SRAM与CoWoS封装HBM的技术权衡

芯片存储架构抉择:片上SRAM与CoWoS封装HBM的技术权衡

在芯片设计领域,存储架构的选择直接关系到性能、功耗、成本和制造可行性。近期关于谷歌 Frozen v2 芯片可能弃用台积电 CoWoS 先进封装、转向片上 SRAM 的讨论,实际上触及了高性能计算芯片在内存墙挑战下的核心权衡问题。这种转变并非简单的技术路线调整…

2026/7/30 5:13:50阅读更多 →
C/C++实现任意进制转换:从原理到工程实践

C/C++实现任意进制转换:从原理到工程实践

1. 项目缘起:为什么我们还在手动写进制转换? 在编程的日常里,尤其是处理底层数据、网络协议、加密算法或者仅仅是做一些趣味数学题时,进制转换是一个绕不开的基础操作。你可能遇到过需要把一个十六进制的颜色码 #FF5733 转成十进…

2026/7/30 5:13:50阅读更多 →
从零实现C/C++词法分析器:编译原理核心实践指南

从零实现C/C++词法分析器:编译原理核心实践指南

1. 项目概述:从“字符串”到“单词”的翻译官如果你刚开始接触编译原理,可能会觉得这个词法分析器听起来很玄乎。其实,你可以把它想象成一个精通多国语言的翻译官,只不过它翻译的对象是程序员写的源代码。我们写的C/C代码&#xf…

2026/7/30 5:13:50阅读更多 →
安卓手机运行完整Linux桌面系统:Proot+Termux+Debian+XFCE实战指南

安卓手机运行完整Linux桌面系统:Proot+Termux+Debian+XFCE实战指南

1. 项目概述:当安卓遇上桌面系统最近在折腾一个挺有意思的事儿:把完整的桌面操作系统,比如Debian,装到安卓手机上跑起来。这听起来可能有点“大材小用”,毕竟手机本身就有安卓系统,但当你需要临时处理一些只…

2026/7/30 6:28:38阅读更多 →
3分钟掌握Visual Syslog Server:Windows系统日志监控终极解决方案

3分钟掌握Visual Syslog Server:Windows系统日志监控终极解决方案

3分钟掌握Visual Syslog Server:Windows系统日志监控终极解决方案 【免费下载链接】visualsyslog Syslog Server for Windows with a graphical user interface 项目地址: https://gitcode.com/gh_mirrors/vi/visualsyslog Visual Syslog Server for Windows…

2026/7/30 6:28:38阅读更多 →
做了3年AI训练师,我为什么劝你早点入局?

做了3年AI训练师,我为什么劝你早点入局?

一、先说结论:这3年,我亲眼看着这个行业翻了天 3年前入行的时候,身边没人知道“AI训练师”是干什么的。家里人问我,我说“就是教AI认东西”,他们似懂非懂地点点头。 3年后的今天,这个岗位已经从“无人知晓…

2026/7/30 6:28:38阅读更多 →
AI数据助手DataAgent:自然语言转SQL的智能实践

AI数据助手DataAgent:自然语言转SQL的智能实践

1. 项目概述:当数据工程师遇上智能助手凌晨三点的写字楼里,最后一位数据工程师终于关掉了SQL编辑器。这样的场景正在被一个叫DataAgent的智能数据助手改写——作为奇麟云数仓的最新生产力工具,它正在用AI重构传统的数据处理流程。不同于普通的…

2026/7/30 6:28:38阅读更多 →
科研绘图配色方案:Python中Plasma、Cividis等专业配色实战指南

科研绘图配色方案:Python中Plasma、Cividis等专业配色实战指南

1. 项目概述:为什么科研绘图需要专属配色?做科研的朋友,尤其是需要处理大量数据、生成论文图表的朋友,一定有过这样的体验:用默认的Excel或Matplotlib配色生成的图表,要么颜色过于鲜艳显得“不专业”&#…

2026/7/30 6:28:38阅读更多 →
UE游戏逆向实战:动态解析FUObjectArray内存布局与对象遍历

UE游戏逆向实战:动态解析FUObjectArray内存布局与对象遍历

1. 项目概述:为什么我们要深挖FUObjectArray?如果你正在尝试对使用虚幻引擎(Unreal Engine, 简称UE)开发的游戏进行逆向分析,无论是为了研究其实现机制、开发辅助工具,还是进行安全审计&#xf…

2026/7/30 6:26:37阅读更多 →
覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

🔹 工具基础介绍 OpenClaw 是开源生态中一款实用性较强的本地智能工具,凭借本地离线运行、可视化图形操作和任务自动化三大核心特性,赢得了众多用户的青睐。与普通在线对话AI工具不同,它属于能够直接操控本机软硬件的智能数字员工…

2026/7/29 9:47:45阅读更多 →
伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

所谓液压伺服阀体的精密激光焊接,是用激光束对阀座壳体(通常为不锈钢或铝合金)进行密封焊接,使阀体在21-35MPa的高压液压油或压缩气体中长期运行而不发生介质泄漏。液压伺服阀是高端液压系统的"大脑"。从航空航天飞行控…

2026/7/29 7:00:19阅读更多 →
D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你是否还在…

2026/7/29 7:58:51阅读更多 →
3分钟解锁iOS应用自由:TrollInstallerX让你的iPhone摆脱安装限制 [特殊字符]

3分钟解锁iOS应用自由:TrollInstallerX让你的iPhone摆脱安装限制 [特殊字符]

3分钟解锁iOS应用自由:TrollInstallerX让你的iPhone摆脱安装限制 🚀 【免费下载链接】TrollInstallerX A TrollStore installer for iOS 14.0 - 16.6.1 项目地址: https://gitcode.com/gh_mirrors/tr/TrollInstallerX 你是否曾经因为iOS系统的严格…

2026/7/30 0:00:58阅读更多 →
[GESP202606 四级] 扫雷

[GESP202606 四级] 扫雷

B4557 [GESP202606 四级] 扫雷 https://www.luogu.com.cn/problem/B4557 中国计算机学会(CCF)2026年6月C四级讲解——扫雷 https://www.bilibili.com/video/BV1MCMg6AEXR/ B4557 [GESP202606 四级] 扫雷 https://www.bilibili.com/video/BV1ZKTj6ZEVh/ 2…

2026/7/30 0:00:58阅读更多 →
Windows驱动存储终极清理工具:DriverStoreExplorer完全指南

Windows驱动存储终极清理工具:DriverStoreExplorer完全指南

Windows驱动存储终极清理工具:DriverStoreExplorer完全指南 【免费下载链接】DriverStoreExplorer Driver Store Explorer 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer 您是否曾因Windows系统盘空间不足而烦恼?是否遇到过设…

2026/7/30 0:00:58阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/30 0:27:26阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/30 4:47:18阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/29 14:26:42阅读更多 →