当前位置: 首页 > news >正文

Linux命令-renice(修改进程优先级)

Linux命令-renice(修改进程优先级)

    • 命令语法
    • 常用选项
    • 场景化实例
      • 1. 降低后台任务优先级
      • 2. 提高关键服务优先级
      • 3. 修改进程组优先级
      • 4. 修改某用户所有进程的优先级
      • 5. 自动化优先级管理
      • 6. 优先级监控报告
      • 7. 不同优先级执行时间对比
    • nice 与 renice 对比
    • 最佳实践

快速参考renice命令用于修改已运行进程的调度优先级(nice 值),通过调整 nice 值影响进程获取 CPU 时间片的能力。nice 值范围 -20(最高优先级)到 19(最低优先级),默认值为 0。

提示:普通用户只能提高 nice 值(降低优先级),只有 root 可以降低 nice 值(提高优先级)。修改后可用topps -l查看效果。

命令语法

renice[选项]优先级 目标

常用选项

选项说明
-n 值指定新的 nice 值(-20 ~ 19)
-p PID通过进程 ID 指定目标
-g PGID修改整个进程组的优先级
-u 用户名修改指定用户所有进程的优先级

场景化实例

1. 降低后台任务优先级

# 启动 CPU 密集型任务ddif=/dev/zeroof=/tmp/test.imgbs=1Mcount=5000&PID=$!echo"进程 PID:$PID"# 查看当前优先级ps-opid,ni,comm-p$PID# 降低优先级(nice=15)renice-n15-p$PID# 确认修改ps-opid,ni,comm-p$PID

2. 提高关键服务优先级

# 查看 nginx 主进程NGINX_PID=$(cat/var/run/nginx.pid)echo"Nginx PID:$NGINX_PID"# 提高优先级(需要 root)sudorenice-n-5-p$NGINX_PID# 调整所有 worker 进程forpidin$(pgrep-f"nginx: worker");dosudorenice-n-5-p"$pid"doneecho"Worker 进程优先级已提高"

3. 修改进程组优先级

# 查看进程组信息ps-eopid,pgid,ni,comm|grepmyapp# 修改整个进程组sudorenice-n10-g$(pgrep-omyapp)# 验证ps-eopid,pgid,ni,comm|grepmyapp

4. 修改某用户所有进程的优先级

# 限制测试用户sudorenice-n19-utestuser# 确认效果ps-utestuser-opid,ni,comm --no-headers

5. 自动化优先级管理

#!/bin/bash# 自动降低批处理任务优先级LOW_PRIORITY_APPS=("updatedb""tar""gzip""bzip2""make""cc1")forappin"${LOW_PRIORITY_APPS[@]}";doforpidin$(pgrep-f"$app");docurrent_nice=$(ps-oni=-p"$pid"2>/dev/null|tr-d' ')if[-n"$current_nice"]&&["$current_nice"-lt15];thenrenice-n15-p"$pid"2>/dev/nullecho"降低$app(PID:$pid):$current_nice-> 15"fidonedone

6. 优先级监控报告

#!/bin/bash# 优先级与 CPU 使用率报告echo"进程优先级报告$(date)"printf"%-8s %-4s %-6s %-20s\n""PID""NI""CPU%""COMMAND"ps-eopid,ni,pcpu,comm--sort=-pcpu|head-20|\whilereadpid ni cpu cmd;doif["$ni"!="NI"];then["$ni"-lt0]&&mark="(高)"||\["$ni"-gt10]&&mark="(低)"||mark=""printf"%-8s %-4s %-6s %-20s %s\n""$pid""$ni""$cpu""$cmd""$mark"fidone

7. 不同优先级执行时间对比

#!/bin/bash# 对比不同 nice 值的影响test_nice(){localn="$1"echo"测试 nice=$n..."timenice-n"$n"bash-c'for i in {1..5000000}; do :; done'2>&1|grepreal}fornin-1001019;dotest_nice"$n"done

nice 与 renice 对比

# nice: 启动时设置优先级nice-n10tarczf backup.tar.gz /data/# renice: 修改已运行进程renice-n10-p$(pidoftar)# 查看所有进程 nice 分布ps-eoni --no-headers|sort|uniq-c|sort-rn

最佳实践

批处理/备份任务设为nice 15-19,关键服务设为nice -5 到 -10。避免设为-20以免抢占内核线程。

# 日常工作流nice-n19rsync-a/data/ /backup/&# 低优先级备份sudorenice-n19-p$(pgreprsync)# 确认降低sudorenice-n-5-p$(pgrep-f"api.py")# 提高服务优先级
http://www.jsqmd.com/news/1138811/

相关文章:

  • .vimrc配置
  • CFD边界速度与条件均值一致性分析:工程仿真校准核心
  • 【Springboot毕设全套源码+文档】基于springboot小学数学错题管理及推荐系统设计与实现(丰富项目+远程调试+讲解+定制)
  • 企业级AI数字员工选型推荐:从“功能堆砌”到“任务执行”的评估框架
  • 2025正品多维d3提高免疫力品牌榜 权威中立评选
  • nvm nodejs
  • Qwen3模拟ASR语义理解与代码生成实践指南
  • 以太网控制器驱动下载 4种方法快速恢复网络
  • 留学赛道怎么做抖音?8人团队单月获客100+的秘密!
  • 4.2.3 慢查询优化
  • Hermes嵌入式消息交互协议原理解析
  • 第二章Netty,EventLoop概述
  • 【JAVA毕设源码分享】基于springboot小学数学错题管理及推荐系统设计与实现(程序+文档+代码讲解+一条龙定制)
  • 【JAVA毕设源码分享】基于springboot4s店车辆管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)
  • 具身智能真机实训:60台实体机器人一周高强度实战
  • 实际方案:DoG#
  • 3分钟终极指南:让Navicat Premium在macOS上永久免费试用
  • OAuth 2.0与Cookie劫持:从1个网吧盗号案例看第三方登录安全实战
  • 大模型加载瓶颈如何破?TiPro9000 SSD实测14900MB/s随机读优化
  • 实战案例勤策签约三得利市场运营方案
  • 3分钟颠覆传统:QQ-Groups-Spider如何重塑社群数据采集生态
  • openclaw视频剪辑skills,5款剪辑自动化实测横评
  • 视频时序数据处理:CNN+LSTM
  • RV1126B部署Docker:ARM64嵌入式内核定制与NPU容器化实战
  • 【黑启动】电力系统黑启动+负荷恢复研究(Matlab代码实现)
  • CCAA ISO管理体系审核员:考试科目汇总(多表格版)
  • `Array(100).map(() => 1)` 为什么全为空?
  • CLAW:端到端连续隐动作世界模型原理与工程实践
  • 机器人视觉语言模型的捷径效应与泛化性实战验证
  • OpenRocket火箭仿真:从零开始的完整指南,让航空航天设计变得简单有趣 [特殊字符]