在 Linux 机器上永久添加任务优先级

在 Linux 机器上永久添加任务优先级

如何在 Debian Linux 系统中提高任务的优先级?经过一番研究后,我发现我可以使用nice命令增加任务的优先级,如果我想增加现有任务的优先级,那么我可以使用该renice命令。

  1. 在一些教程中提到,nice 值从 0 到 99 变化,但在一些教程中指出,nice 值从 -20 到 19 变化。哪一个是正确的?

  2. 如何增加 GUI 任务的好值?如果我使用终端进行复制,那么我可以使用nice命令提高其优先级,但是如何提高使用 GUI 完成的任务的优先级(例如:通过 GUI 将文件从 USB 复制到系统)

  3. 是否可以在每次运行任务时设置任务的优先级?我想永久设置通过 GUI 复制文件的最高优先级。

答案1

您几乎无法提高 USB 驱动器的写入速度。虽然nice可以更改分配给进程的 CPU 量,但大多数对 USB 驱动器(尤其是闪存驱动器)的写入都受到设备写入信息的速度和不是通过分配多少CPU。

换句话说,如果系统所做的唯一事情就是写入闪存驱动器,您会发现它需要大约相同的时间才能完成。

答案2

好的值是从 -20 到 19。从手册页 ( man nice):

以调整后的良好程度运行 COMMAND,这会影响进程调度。如果没有命令,则打印当前的良好程度。 Niceness 范围从 -20(最有利的调度)到 19(最不有利)。

默认情况下,进程以nice值0启动。因此,如果您希望特定进程的优先级较高,请将其nice值设置为-19。如果你想让它好看,那么它的值就是20。

笔记:这有点倒退,只要记住你的过程是不是很好,因此是负数。

列出好的价值观

您可以使用该命令ps查看您的进程的nice值是多少。命令开关-lu saml将列出 user 的所有进程saml。这里我们只显示前 10 个。

$ ps -lu saml | head -10
F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
0 S   500  1609     1  0  80   0 - 13982 poll_s ?        00:00:01 mission-control
0 S   500  1703     1  0  80   0 - 110161 poll_s ?       00:00:01 notification-da
1 S   500  2017     1  0  80   0 - 57922 poll_s ?        00:00:11 gnome-keyring-d
4 S   500  2025  2008  0  80   0 - 27873 wait   ?        00:00:00 bash
1 S   500  2034     1  0  80   0 -  5558 poll_s ?        00:00:00 dbus-launch
1 S   500  2035     1  0  80   0 -  6184 poll_s ?        00:04:06 dbus-daemon
0 S   500  2098  3240  0  80   0 - 28877 wait   pts/9    00:00:05 bash
0 S   500  2121  2025  0  80   0 - 80191 poll_s ?        00:00:03 gnome-session
0 S   500  2126     1  0  80   0 - 36231 poll_s ?        00:00:45 gconfd-2
...

**注意:* 该NI列显示了良好的值。

雷尼辛

renice只需知道任何进程的进程 ID 即可。此命令会将 PID 1234 增加到 11 (10+1):

$ renice +1 1234

您可以显式设置好级别:

$ renice -n 15 1234

您还可以为特定用户的所有进程设置良好级别:

$ renice -n 15 -u someuser

图形用户界面

您可以使用系统监视器应用程序(通常在菜单中)或命令gnome-system-monitor来调出一个 GUI,您可以在其中更改进程的良好级别。

           SM #1

                                           SM #2

相关内容