调整调优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 显示版本信息并退出
`