“好”实际上是一个命令。

 

我是系统解决方案部的犬冢牙,一个热爱游戏和动漫的全能型御宅族。

这次我将写一篇关于 UNIX 操作系统(如 Linux)中使用的“nice”命令的博客。

关于这个不错的命令

nice 命令可以改变进程的相对优先级

还有一个类似的命令叫做“renice”,但它会改变当前正在运行的程序(格式略有不同)。

*为了避免混淆,我们这次特意没有将其包含在内。

优先级和选项概要

关于优先级

优先级(nice 值)从 -20 调整到 19

数字越负,优先级越高数字越正,优先级越低(为什么……)

要提高优先级,您需要 root 权限。

优先事项 价值 评论
高的 -20 只有root用户才能更改
0 初始值
低的 19 root 用户和普通用户都可以进行更改。

关于选项

以下是一些不错的命令选项

选项 解释
-【价值】 按指定值增加或减少优先级
-n [值] 按指定值增加或减少优先级
(如果未指定值,
则默认值为 10)。
--调整=[值]
- 帮助 需要更多帮助吗?
- 版本 显示版本

……是的!有很多事情需要注意,但基本上,只需记住 -n [值]

(注:如果您未明确指定此值,则将使用默认值(+10)

 

例如,运行名为 beyond.sh 的脚本,优先级为 -5,则可以使用以下格式:

# nice -n -5 /opt/beyond.sh

与其他进程相比,我们可以看到它的执行优先级(NI)为-5。

 
PID 用户 PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 2818 root 15 -5 13004 1416 1208 S 0.0 0.3 0:00.05 /bin/bash /opt/beyond.sh

如何检查nice值

确认方法(示例)

您可以ps -ltop -c当前正在运行的进程的相对优先级 (NI)

ps -l

# ps -l FS UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 4 S 0 2526 2503 0 80 0 - 35262 poll_s pts/0 00:00:00 sudo 4 S 0 2528 2526 0 80 0 - 22938 do_wai pts/0 00:00:00 su 4 S 0 2529 2528 0 80 0 - 3946 do_wai pts/0 00:00:00 bash 0 R 0 3315 2529 0 80 0 - 13267 - pts/0 00:00:00 ps

top -c

#top -c PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 571 root 20 0 474024 17456 6156 S 0.0 3.5 0:05.50 /usr/bin/python2 -Es /usr/sbin/tuned -l -P 341 polkitd 20 0 613016 9184 5076 S 0.0 1.8 0:00.20 /usr/lib/polkit-1/polkitd --no-debug 1474 root 20 0 447996 8968 6708 S 0.0 1.8 0:01.16 /usr/sbin/NetworkManager --no-daemondaemon 1 root 20 0 127992 6612 4128 S 0.0 1.3 0:03.88 /usr/lib/systemd/systemd --switched-root --system --deserialize 21 1499 root 20 0 102904 5512 3456 S 0.0 1.1 0:00.02 /sbin/dhclient -d -q -sf /usr/libexec/nm-dhcp-helper -pf /var/run/dhclient-eth0.pid -lf /var/lib/NetworkManager/dhclient-+ 2818 root 15 -5 13004 1416 1208 S 0.0 0.3 0:00.05 /bin/bash /opt/beyond.sh

改变的好处

通过明确指定优先级,您可以将 CPU 资源分配给优先级更高的其他进程。

换句话说, CPU 的负载似乎可以相对降低

 

嗯……我不太明白你的意思。

从人性的角度来看,我认为这你是在繁忙的日程中被分配到重要的工作,还是被分配到有更多时间完成的工作

如果你被分配到像前面提到的那种工作,你将难以应付,而且很难调整你的日程安排。

我认为,如果分配给你的工作有明确的优先级,即使同时还要处理其他任务,你也能顺利地完成这项工作

CPU 的情况也是如此(希望这能有所帮助)。

何时应该使用它?

那么,什么时候会用到这个好用的命令呢?

我们列举了它的一些用途!

  • 使用 mysqldump 导出大量数据
  • 在事后调查中,使用正则表达式对大量日志进行搜索时
  • 运行大量批处理时

等等..

当您想要运行一个不太紧急且不太耗费资源的进程,而又不影响其他进程的处理速度时,

 

它好在哪里?

嗯,到目前为止,我已经从各个方面研究过nice命令,但是……

这条命令到底好在哪里呢?

(我很好奇!)

我相信肯定有一些人对此感兴趣,所以我就把它作为专栏文章写在这里吧。

我研究了一下 nice 命令的起源!

我调查后发现有几种说法,

您真是太好了,竟然为了其他用户降低了优先级!

你真好,还这么爱惜你的CPU。

这似乎是一个表达对用户友好或赞扬的命令

(我之前不知道降低优先级会使数值变为正值的原因。)

概括

以下是今天内容的简要概述:

  • 基本格式很好 -n【值】
  • 您可以更改优先级并运行它以降低 CPU 负载。
  • 负值表示优先级较高,正值表示优先级较低(理想值范围:-20 至 19)
  • 需要 root 权限才能提高优先级

最后

感谢您阅读这篇拙作博客到最后。

我会继续不定期更新,请大家随时关注。

我先走了。

 

如果您觉得这篇文章有帮助,请点赞!
5
加载中...
5 票,平均:1.00 / 15
9,724
X Facebook 哈特纳书签 口袋

写这篇文章的人

关于作者

犬宿

2021 年 4 月作为应届毕业生加入 Beyond。
也许是因为我的输出有问题,但有时我会说一些奇怪的话。