调整调优nice,renice,chrt

目标

  通过nice和renice命令对特定进程进行优先排序或取消其优先排序。

名词定义

  • 调优系统
      现代计算机系统中既包含只有单个CPU且任何时候都只能执行单个指令的低端系统,也包含高性能超级计算机,这些超级计算机每台配备数百个CPU,且每个CPU上有数十甚至数百个处理核心,可并行执行大量指令。所有这些系统还有一个共同点:它们需要运行的进程线程数量超出了其CPU数量。

  通过使用称为时间片或多任务的技术,Linux和其他操作系统可运行超出其处理单元数的进程。操作系统进程调度程序在单个核心上的进程之间快速切换,从而给人一种多个进程在同时运行的印象。

  • 相对优先级
      不同进程的重要性水平各不相同。进程调度程序可以配置为针对不同的进程采用不同的调度策略。常规系统上运行的大多数进程所使用的调度策略称为SCHED_OTHER,但还有一些其他策略可满足各种各样的工作负载需求。

  由于并非所有进程都同等重要,因此可为采用SCHED_NORMAL策略运行的进程指定相对优先级。此优先级称为进程的nice值,对于任何进程,都可以组织成40种不同级别的nice值。

  nice级别值的范围介于-20到19之间。默认情况下,进程降级成且父进程的nice级别,通常为0.nice级别越高,表示优先级月低;nice级别越低,表示优先级越高。如果不存在资源争用,即使nice级别高的进程也将仍使用它们可使用的所有可用CPU资源。但当请求CPU时间的进程数超过可用核心数时,nice级别较高的进程将让nice级别较低的进程收到更少的CPU时间。

  • 设置NICE级别和权限
      为很占CPU资源设置较低的NICE 级别可能对会回同一系统上运行的其他进程的性能造成负面影响,所以只有root用户可以降低进程的nice级别。

  非特权用户的权限仅限于提高自己进程的nice级别。他们不能降低自己进程的nice级别,也不能修改其他用户进程nice级别。

  • 报告nice级别
      有几个工具可以显示正在运行的进程的nice级别。进程管理工具默认显示nice级别。其他工具可在使用适当选项的情况下显示nice级别。

  • 使用top显示nice级别
      使用top命令可通过文本交互方式查看和管理进程。默认配置显示的是关于nice级别与优先级的两列。NI列显示进程的nice值,而PR列则显示其调度的优先级。在top界面中,nice级别映射至内部系统优先级队列。

实操演示

[root@sinfotek ~]# ps -eo pid,user,nice,command | more
  PID USER      NI COMMAND
    1 root       0 /usr/lib/systemd/systemd --switched-root --system 
--deserialize 22
    2 root       0 [kthreadd]
    4 root     -20 [kworker/0:0H]
    6 root       0 [ksoftirqd/0]
    7 root       - [migration/0]
    8 root       0 [rcu_bh]
    9 root       0 [rcu_sched]
   10 root     -20 [lru-add-drain]
   11 root       - [watchdog/0]
   12 root       - [watchdog/1]
   13 root       - [migration/1]
   14 root       0 [ksoftirqd/1]
   16 root     -20 [kworker/1:0H]
   17 root       - [watchdog/2]
   18 root       - [migration/2]
   19 root       0 [ksoftirqd/2]
   21 root     -20 [kworker/2:0H]
   22 root       - [watchdog/3]
   23 root       - [migration/3]
   24 root       0 [ksoftirqd/3]
   26 root     -20 [kworker/3:0H]
   27 root       - [watchdog/4]
   28 root       - [migration/4]
   29 root       0 [ksoftirqd/4]
   31 root     -20 [kworker/4:0H]
   32 root       - [watchdog/5]
   33 root       - [migration/5]
   34 root       0 [ksoftirqd/5]
   36 root     -20 [kworker/5:0H]
   37 root       - [watchdog/6]
##查看进程的pid、nice
  • 命令:renice

    语法:renice 选项 参数
    用法:
    renice [-n] <优先级> [-p|–pid]
    renice [-n] <优先级> -g|–pgrp
    renice [-n] <优先级> -u|–user <用户>…

    选项:
    -g, –pgrp 将参数解释为进程组 ID
    -n, –priority <数字> 指定 nice 增加值
    -p, –pid 将参数解释为进程 ID (默认)
    -u, –user <name|id> 将参数解释为用户名或用户 ID
    -h, –help 显示帮助文本并退出
    -V, –version 显示版本信息并退出

`

文档更新时间: 2022-09-16 15:46   作者:xiubao yan