Linux系统之nice命令的基本使用

简介: 【7月更文挑战第10天】Linux系统之nice命令的基本使用

在这里插入图片描述

一、nice命令介绍

1.1 nice命令简介

nice命令在Linux系统中是一个用于调整进程优先级的工具。通过nice值,用户可以控制程序运行时占用CPU资源的相对比例,从而实现对系统资源分配的微调。高的nice值表示更低的优先级,意味着程序会更少地占用CPU时间,给其他程序更多机会;反之,低的nice值表示更高的优先级。默认情况下,大部分程序以0的nice值运行。

1.2 进程优先级介绍

调度优先级决定对CPU的访问,进程的nice值影响优先级。nice值为-20到19 ,缺省为0,低nice值意味着高CPU优先级。

二、nice命令基本语法

2.1 nice命令的help帮助信息

查看 nice命令的help帮助信息

[root@jeven ~]# nice --help
Usage: nice [OPTION] [COMMAND [ARG]...]
Run COMMAND with an adjusted niceness, which affects process scheduling.
With no COMMAND, print the current niceness.  Niceness values range from
-20 (most favorable to the process) to 19 (least favorable to the process).

Mandatory arguments to long options are mandatory for short options too.
  -n, --adjustment=N   add integer N to the niceness (default 10)
      --help     display this help and exit
      --version  output version information and exit

NOTE: your shell may have its own version of nice, which usually supersedes
the version described here.  Please refer to your shell's documentation
for details about the options it supports.

GNU coreutils online help: <http://www.gnu.org/software/coreutils/>
For complete documentation, run: info coreutils 'nice invocation'
nice [-n adjust] command
  • -n adjust:可选参数,指定进程的nice值。adjust值范围通常是-20到19,-20(对进程最有利)到19(对进程最不利)。如果不指定,默认调整值为10。
  • command:需要以指定nice值运行的命令或程序。

2.2 nice命令选项解释

nice命令用途:调整进程的优先级,从而影响其调度。如果不指定命令,则打印当前的优先级。优先级值范围从-20(对进程最有利)到19(对进程最不利)。

命令格式:nice [选项] [命令 [参数]...]

选项说明:

选项 作用 等效短选项 默认值
-n, --adjustment=N 将整数N添加到优先级(默认为10) -n 10
--help 显示帮助信息并退出
--version 输出版本信息并退出

注意:

  • 您的shell可能有自己版本的nice命令,该版本通常会替代这里描述的版本。详情请参阅shell的文档。
  • GNU coreutils在线帮助:http://www.gnu.org/software/coreutils/
  • 完整文档,请运行:info coreutils 'nice invocation'

三、nice命令的基本使用

3.1 查看进程优先级

查看当前进程的优先级

[root@jeven ~]# ps -eo pid,comm,nice --sort=-nice |head
   PID COMMAND          NI
    37 khugepaged       19
  8992 alsactl          19
 17633 tracker-extract  19
 17642 tracker-miner-a   -
 17653 tracker-miner-f  19
 17660 tracker-miner-u   -
    36 ksmd              5
  9037 rtkit-daemon      1
     1 systemd           0

3.2 使用nice启动进程

使用nice命令,以优先级6打开file.txt文件。

nice -n 6 vim file.txt

另外开启一个终端,查看vim进程的优先级。

[root@jeven ~]# ps -eo pid,comm,nice --sort=-nice |grep vim
 21331 vim               6
 16166 vim               0

也可以通过进程的PID来查询

[root@jeven ~]# pidof vim
21331 16166
[root@jeven ~]# ps -p 21331 -o pid,ni,cmd
   PID  NI CMD
 21331   6 vim file.txt

3.3 提高优先级

  • 后台运行一个进程
ping www.baidu.com > ping_output.txt &
  • 查看进程优先级
 ps -p 22869 -o pid,ni,cmd

在这里插入图片描述

  • 调整优先级

要调整一个已在后台运行的进程的优先级(nice值)为10,你可以使用renice命令。首先,确保你已经获取了该进程的PID,正如你示例中提到的PID为22869。接下来,执行以下命令来进行调整。这条命令中,-n 10指定了新的nice值为10,-p 22869指定了要调整优先级的进程PID。执行后,系统会修改该进程的优先级。

renice -n 10 -p 22869

在这里插入图片描述

四、注意事项

  • 权限限制: 普通用户不能将nice值设置为负数或大幅度提高优先级,这是为了防止非授权用户抢占系统资源。
  • 调度策略: nice仅影响进程的CPU时间分配,并不保证绝对的执行顺序。Linux内核还使用其他调度策略,如实时优先级(通过chrt命令设置),来进一步管理进程的执行顺序。
  • 监控和调整: 使用如top、ps -eo pid,comm,nice,%cpu或htop等工具可以查看和调整正在运行的进程的nice值。
  • 通过合理使用nice命令,系统管理员和高级用户可以更好地控制系统资源的分配,确保关键任务或对响应时间敏感的应用程序能够获得足够的处理能力。
相关文章
|
6天前
|
Linux 应用服务中间件 Shell
linux系统服务二!
本文详细介绍了Linux系统的启动流程,包括CentOS 7的具体启动步骤,从BIOS自检到加载内核、启动systemd程序等。同时,文章还对比了CentOS 6和CentOS 7的启动流程,分析了启动过程中的耗时情况。接着,文章讲解了Linux的运行级别及其管理命令,systemd的基本概念、优势及常用命令,并提供了自定义systemd启动文件的示例。最后,文章介绍了单用户模式和救援模式的使用方法,包括如何找回忘记的密码和修复启动故障。
23 5
linux系统服务二!
|
4天前
|
缓存 监控 Linux
|
6天前
|
Linux 应用服务中间件 Shell
linux系统服务!!!
本文详细介绍了Linux系统(以CentOS7为例)的启动流程,包括BIOS自检、读取MBR信息、加载Grub菜单、加载内核及驱动程序、启动systemd程序加载必要文件等五个主要步骤。同时,文章还对比了CentOS6和CentOS7的启动流程图,并分析了启动流程的耗时。此外,文中还讲解了Linux的运行级别、systemd的基本概念及其优势,以及如何使用systemd管理服务。最后,文章提供了单用户模式和救援模式的实战案例,帮助读者理解如何在系统启动出现问题时进行修复。
24 3
linux系统服务!!!
|
7天前
|
Linux Shell 数据安全/隐私保护
|
8天前
|
域名解析 网络协议 安全
|
2天前
|
监控 Linux
Linux常用命令-2
本文继续介绍Linux常用命令,涵盖目录操作、文件操作、系统信息和进程管理等类别。具体包括mkdir、rmdir、cp、mv、rm、touch、whereis、whatis、dmesg、free、date、cal、ps、kill、killall和top等命令的使用方法和常用参数。
22 7
|
2天前
|
Linux Shell
Linux常用命令-1
本课程要求学生熟悉Linux系统终端窗口和命令基础,掌握文件目录类、系统信息类、进程管理类及其他常用命令,学时为3-6小时。课程内容涵盖Linux命令的特点、常见命令的使用方法及其应用场景,如文件浏览、目录切换、内容显示等。建议学生逐个操作命令并及时反馈问题。
20 5
|
4天前
|
缓存 Linux 开发者
深入理解Linux命令 `autom4te`
`autom4te` 是 GNU Autotools 中不可或缺的组件,通过高效处理 M4 宏,生成配置脚本并提供强大的调试功能。了解 `autom4te` 的工作机制和常用选项,可以帮助开发者更好地编写和维护配置文件,从而提高软件项目的配置和编译效率。在实际应用中,结合 `autoconf` 等工具,`autom4te` 能够为项目的构建过程提供坚实的基础。
13 2
|
6天前
|
Linux 开发工具
linux文本管理命令
本文档介绍了Linux系统中常用的文本处理命令,包括`echo`、`cat`、`head`、`tail`、`wc`、`less`、`grep`以及重定向符号的使用方法和练习题。此外,还详细讲解了VIM编辑器的特点、工作模式、常用快捷键和高级技巧,帮助用户高效地进行文本编辑和处理。
23 4
|
6天前
|
网络协议 Linux
linux系统重要文件目录
本文介绍了Linux系统中的重要目录及其历史背景,包括根目录、/usr、/etc、/var/log和/proc等目录的结构和功能。其中,/etc目录下包含了许多关键配置文件,如网卡配置、DNS解析、主机名设置等。文章还详细解释了各目录和文件的作用,帮助读者更好地理解和管理Linux系统。
23 2