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