如何讓一個process擁有絕對優先權? - Linux

Table of Contents

最近又有時間搞這些有的沒有的了

而且還不小心成功了,所以就上來做個紀錄順便騙騙P幣

OS: Ubuntu 18.04
Kernel: 4.15.0-43-generic

首先得先在/etc/security/limits.conf裡新增底下這一行

YourUserName - rtprio 99

修改完後重新登入

這樣YourUserName這個帳號才有權限用chrt提高mpv的優先權

而不用每次都要sudo


再來直接用chrt執行mpv

$ chrt -r 99 mpv VIDEO_FILE

這樣mpv就能獲得極高的優先權

即便一邊build code一邊瀏覽網頁也不會掉幀

有一點蠻奇怪的就是一定要直接用chrt執行mpv

如果先開mpv再用chrt去調整mpv的優先權,例如:

$ mpv VIDEO_FILE &
$ chrt -r -p 99 $(pidof mpv)

調整就會無效,掉幀掉個不停

之前就都是用這樣的方式調整優先權

怎麼調都沒有反應,覺得這部份似乎有bug


另外build code可以用SCHED_IDLE這個scheduling policy,例如:

$ chrt -i 0 make -jN (N=number of jobs)

這個是Linux裡優先權最低的policy (但好像也只等同nice -n 20)

用了之後感覺比較不會影響到影片的播放(?

大概就是這樣,供大家參考~~~

※ 引述《idisnothing ()》之銘言:
: 如題
: 已經用renice把該程式的CPU優先權調為最高(-20)
: 但當編譯程式時 ($ nice -n 19 make -j 4),該程式還是會受到影響
: 有什麼方法可以讓一個process擁有絕對優先權嗎?
: 需要重新編譯核心嗎?

--

All Comments

Noah avatarNoah2019-01-08
看起來原po build code build到死都要看影片XDD
John avatarJohn2019-01-09
怎麼樣都要看影片給推,沒看過Linux這樣用的
死都要看影片你第1名
Isabella avatarIsabella2019-01-10
佩服樓主的毅力,若是值得就好
Tracy avatarTracy2019-01-12
原來看影片比 build code 重要
Poppy avatarPoppy2019-01-13
就是需要您這種毅力
Vanessa avatarVanessa2019-01-18
所以還是要看影片無誤 (蓋章)
Mason avatarMason2019-01-19
推影片 請問什麼影片這麼吸引人?
Donna avatarDonna2019-01-19
你知道有vaapi和vdpau可以offload不
Una avatarUna2019-01-23
我是用雙螢幕,一邊看你管影片一邊看拖網頁會lag
Jacky avatarJacky2019-01-25
目前好像還是無解
Skylar DavisLinda avatarSkylar DavisLinda2019-01-25
網頁切換的那瞬間影片會lag一下
Rebecca avatarRebecca2019-01-27
爆香套件wwwww
Ivy avatarIvy2019-01-30
沒顯示卡那你怎麼看影片的,我寫VAAPI就是說至少有個Intel
Linda avatarLinda2019-02-02
如果有 srt 字幕就算 vaapi 也沒用
Damian avatarDamian2019-02-06
你可以 vaapi + OpenGL 輸出
Enid avatarEnid2019-02-08
不是,我的意思是如果cpu不夠力,就算開硬解,有字幕
一樣卡頓
Ina avatarIna2019-02-11
但sup這種的不會
Bennie avatarBennie2019-02-16
vaapi + OpenGL + srt 字幕會頓?
Bennie avatarBennie2019-02-18
是,我用 Intel core2 Q8200 會,i5 4460 不會,但是
可以看到他的 Vsync Jitter 會瞬間變高
Victoria avatarVictoria2019-02-22
就是字幕跳出來的那一瞬間容易卡頓,所以要用 MPV 當
Catherine avatarCatherine2019-02-26
HTPC 的播放器,CPU不能太弱
James avatarJames2019-03-02
我想得到的理由只有 glTexImage2D 上傳
Kama avatarKama2019-03-04
OpenGL vo 畫字幕又不用過 yuv2rgb,也不用 CPU 畫東西
Selena avatarSelena2019-03-07
最多就 freetype 畫字。
Zenobia avatarZenobia2019-03-07
字幕的 texture 播放前先上傳好就不會搞成這樣了
Doris avatarDoris2019-03-11
所以這算 mpv 的問題還是 OpenGL 本身的問題?
Kumar avatarKumar2019-03-14
mpv 吧,以前 mplayer 不會這樣啊
Rebecca avatarRebecca2019-03-16
感覺原PO應該是使用CFQ當作預設的IO scheduler
這個算是CFQ的缺點的樣子
Brianna avatarBrianna2019-03-16
能夠請問有辦法直接預設嗎?而非從終端機打指令
Ula avatarUla2019-03-18
雖然我改了還是 lag
Agnes avatarAgnes2019-03-22
要預設就重 build kernel 或下在 kernel cmdline
Erin avatarErin2019-03-24
不然就在 /etc/rc.local 之類的 script 去改 sysfs
Regina avatarRegina2019-03-25
先調成 preemptible kernel + 1000hz tick 吧