如何使用 nice 和 renice 命令设置 Linux 进程优先级

Nice 是 Linux 中的一个命令行实用程序,可让我们设置进程的“niceness”值。 它用于启动具有定义优先级的进程。 当我们启动任何未定义优先级的程序或进程时,nice 将默认优先级设置为 10。niceness 为 19 是最低优先级,而 -20 是最高优先级。 当多个进程需要的资源超过 CPU 所能提供的资源时,nice 命令非常有用。

Renice 与 nice 非常相似,用于更改已运行进程的优先级。 如果我们的系统由于一个冗长的进程而运行得很慢,我们可以在 renice 命令的帮助下降低或提高该进程的优先级。

优先级是一个可以分配给每个进程的值,内核使用这个值来调度进程的执行。

  • 0-99 是用于实时优先级分配的优先级值。
  • 100-139 是用户分配的优先级值。

在这篇文章中,我们将向我们展示如何使用 Nice 和 renice 命令设置 Linux 进程优先级。

先决条件

  • 云平台上的 Linux 服务器
  • 在我们的服务器上配置的 root 密码

第 1 步 – 创建 云服务器

首先,登录到我们的 云服务器。 创建一个新服务器,选择 Ubuntu、CentOS 或 Rocky Linux 作为操作系统,至少 2GB RAM。 通过 SSH 连接到我们的云服务器并使用页面顶部突出显示的凭据登录。

登录到服务器后,运行以下命令以使用最新的可用软件包更新基本系统。

apt-get update -y

或者

dnf update -y

第 2 步 – 显示流程的良好价值

在 Linux 中,当我们启动任何进程或程序时,它的默认优先级为 0。

我们可以使用 ps 或 top 命令来显示正在运行的进程的优先级。

要检查 Nginx 进程的 Nice 值,请运行以下命令:

ps -fl -C nginx

我们应该在 NI 列中看到 Nginx 进程的优先级,如下所示:

F S UID        PID  PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
5 S www-data  3156  3155  0  80   0 - 21700 -      10:33 ?        00:00:00 nginx: worker process

要显示所有正在运行的进程的 nice 值,请使用 top 命令:

top

我们应该在 NI 列中看到所有进程的 nice 值。

第 3 步 – 使用 Nice 命令更改进程的优先级

nice 命令不能改变正在运行的进程的优先级。 但是,我们可以使用 nice 命令启动任何具有预定义优先级的程序。

例如,使用 nice 值 5 启动一个顶级程序:

nice -5 top

这会将优先级值 5 分配给顶部。

现在,打开另一个终端并验证顶部的优先级,如下所示:

ps -fl -C top

我们应该在 NI 列中看到 top 命令的优先级:

F S UID        PID  PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
4 S vyom      7966  7277  0  85   5 -  7323 poll_s 11:41 pts/14   00:00:00 top

当我们设置高于 0 的优先级值时,我们不需要 root 权限。如果我们想通过分配负值来增加任何进程的优先级,我们将需要 root 权限。

例如,要将 top 命令的优先级提高到 -20,请使用以下命令:

sudo nice --20 top

第 4 步 – 使用 renice 命令更改运行进程的优先级

如我们所知,nice 命令不能更改任何正在运行的进程的优先级。 在这种情况下,我们将需要使用 renice 命令来更改正在运行的进程的优先级。

在这里,我们将使用已经在运行的顶级进程。

首先,使用以下命令验证顶级进程的当前优先级:

ps -fl -C top

样本输出:

F S UID        PID  PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
4 S vyom      7966  7277  0  85   5 -  7323 poll_s 11:41 pts/14   00:00:03 top

如我们所见,顶级进程的优先级为 5。

现在,我们将顶部进程的优先级更改为 -15。

首先,使用以下命令找到top进程的PID:

pidof top

样本输出:

7966

现在,通过指定 top 的优先级值和 PID 来运行以下命令:

sudo renice -n -15 -p 7966

样本输出:

7966 (process ID) old priority 5, new priority -15

我们还可以更改特定用户拥有的所有进程的优先级。

例如,更改 root 用户拥有的所有进程的优先级,运行:

sudo renice -n 10 -u root

在本指南中,我们学习了如何使用 nice 和 renice 命令设置和更改任何进程的优先级。 我们现在可以根据需要轻松增加和减少流程优先级。 从 Altantic.Net 开始在我们的 VPS 主机帐户上使用 nice 和 renice。

© 版权声明
THE END
喜欢就支持一下吧
点赞9 分享
评论 抢沙发

请登录后发表评论