我想配置我的桌面 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