默认情况下为特定进程分配更高的优先级

默认情况下为特定进程分配更高的优先级

我想配置我的桌面 Linux 系统,以便每当我开始运行特定程序(运行该程序的进程)时,都会为相应的进程分配高优先级。这个怎么做?

我知道我可以为运行程序的每个实例(即特定进程)单独执行此操作。但是如何为程序(即所有未来的进程)配置默认值?

内核版本:4.10.11-200.fc25.x86_64

答案1

有一个程序叫“自动好守护进程” 它执行此操作。它在后台运行,当进程表中出现匹配特定模式的进程时,它会自动设置其友好度。

您可以使用它 - 但是,您可能会有点失望,因为 Linux 调度程序有很多需要平衡的内容,并且增加优先级不一定会带来神奇的速度提升。你甚至可能会遇到它制造事情的情况更差,因为您的高优先级进程可能会“饿死”应用程序实际上可能依赖的低优先级进程。

所以,相反,你可以看看类似的东西调谐,它具有针对各种不同工作负载的性能配置文件。或者,如果你喜欢冒险,你可以看看Con Kolivas 桌面调度程序补丁,旨在优化桌面体验。这确实很难衡量,而且有些争议——许多人对此深信不疑,而另一些人则持怀疑态度。 (有一篇关于最新版本的 Linux 每周新闻文章,位于MuQSS CPU 调度器— 目前需要付费,但将于 5 月 4 日免费。)

答案2

你会想调查一下好的雷尼采公用事业。要为您的进程提供更高的 CPU 优先级,您必须拥有 root/sudo 权限。您可以使用nice较高优先级启动该进程,也可以renice随后将其更改为较高优先级。

(terminal1):~# nice -n -10 sleep 100
(terminal2):~# top -b -n1 | grep sleep
23580 root      10 -10    4508   1244   1156 S 0.000 0.008   0:00.00 sleep
(terminal1):~# sleep 100
(terminal2):~# top -b -n1 | grep sleep
23888 root      20   0    4508   1316   1228 S 0.000 0.008   0:00.00 sleep
(terminal2):~# renice -n -10 23888
23888 (process ID) old priority 0, new priority -10
(terminal2):~# top -b -n1 | grep sleep
23888 root      10 -10    4508   1356   1268 S 0.000 0.008   0:00.00 sleep

相关内容