作者idisnothing ()
看板Linux
标题Re: [问题] 如何让一个process拥有绝对优先权?
时间Fri Jan 4 21:32:19 2019
最近又有时间搞这些有的没有的了
而且还不小心成功了,所以就上来做个纪录顺便骗骗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拥有绝对优先权吗?
: 需要重新编译核心吗?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 220.132.185.54
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Linux/M.1546608741.A.99B.html
1F:推 filiaslayers: 看起来原po build code build到死都要看影片XDD 01/04 22:35
2F:推 bamchisu: 怎麽样都要看影片给推,没看过Linux这样用的 01/04 23:29
3F:→ bamchisu: 死都要看影片你第1名 01/04 23:29
4F:→ kenduest: 佩服楼主的毅力,若是值得就好 01/04 23:41
5F:推 dou0228: 原来看影片比 build code 重要 01/04 23:52
6F:推 idletime: 就是需要您这种毅力 01/05 00:02
怎麽洗个澡回来推文变这样啊啊啊
其实也不是死都要一边build code一边看影片啦
build code只是用来让测试环境更加严苛
如果一边build code一边看影片都不会掉帧
那我想应该也很少有其它工作能让影片掉帧了
而且GPU硬解也能解决这个问题
这半年来就都是靠GPU硬解的
只是前几天把显卡都卖掉了
新卡又因故没能顺利入手
只好又回过头来从process scheduling下手来处理这问题
不然这一两天光是拖拉个网页mpv就开始狂掉帧
都没办法好好看电视或游戏实况了QQ
7F:推 shiyeh: 所以还是要看影片无误 (盖章) 01/05 00:27
好像真的是耶,习惯萤幕右下角开着电视或游戏实况惹
8F:推 ddtsatan: 推影片 请问什麽影片这麽吸引人? 01/05 01:09
想看私我,税後10000P就好(贪
9F:推 hizuki: 你知道有vaapi和vdpau可以offload不 01/05 03:54
虽然我不像和运什麽都知道,但这我还是懂的
只是这几天没显卡用啊啊啊,只好暂时先这样了
10F:推 OrzOGC: 我是用双萤幕,一边看你管影片一边看拖网页会lag 01/05 08:47
11F:→ OrzOGC: 目前好像还是无解 01/05 08:48
12F:→ OrzOGC: 网页切换的那瞬间影片会lag一下 01/05 08:49
AMD 16C32T 爆香套件买下去,保证顺畅不卡卡
13F:→ s8321414: 爆香套件wwwww 01/05 20:49
14F:→ hizuki: 没显示卡那你怎麽看影片的,我写VAAPI就是说至少有个Intel 01/08 10:34
880G的内显HD4250没办法硬解1080p60,在Linux下也没办法hardware deinterlace
所以只好通通靠CPU硬干罗
※ 编辑: idisnothing (220.132.185.53), 01/08/2019 15:05:59
15F:推 s9209122222: 如果有 srt 字幕就算 vaapi 也没用 01/09 06:41
16F:推 Bencrie: 你可以 vaapi + OpenGL 输出 01/09 12:04
17F:推 s9209122222: 不是,我的意思是如果cpu不够力,就算开硬解,有字幕 01/09 17:34
18F:→ s9209122222: 一样卡顿 01/09 17:34
19F:→ s9209122222: 但sup这种的不会 01/09 17:35
20F:推 Bencrie: vaapi + OpenGL + srt 字幕会顿? 01/09 19:37
21F:推 s9209122222: 是,我用 Intel core2 Q8200 会,i5 4460 不会,但是 01/10 10:15
22F:→ s9209122222: 可以看到他的 Vsync Jitter 会瞬间变高 01/10 10:15
23F:→ s9209122222: 就是字幕跳出来的那一瞬间容易卡顿,所以要用 MPV 当 01/10 10:17
24F:→ s9209122222: HTPC 的播放器,CPU不能太弱 01/10 10:18
25F:推 Bencrie: 我想得到的理由只有 glTexImage2D 上传 01/10 12:20
26F:推 Bencrie: OpenGL vo 画字幕又不用过 yuv2rgb,也不用 CPU 画东西 01/10 12:24
27F:→ Bencrie: 最多就 freetype 画字。 01/10 12:25
28F:推 Bencrie: 字幕的 texture 播放前先上传好就不会搞成这样了 01/10 12:31
29F:推 s9209122222: 所以这算 mpv 的问题还是 OpenGL 本身的问题? 01/10 20:06
30F:推 Bencrie: mpv 吧,以前 mplayer 不会这样啊 01/10 21:32
31F:推 l12436: 感觉原PO应该是使用CFQ当作预设的IO scheduler 01/11 09:21
32F:→ l12436: 这个算是CFQ的缺点的样子 01/11 09:21
33F:推 s9209122222: 能够请问有办法直接预设吗?而非从终端机打指令 01/15 19:08
34F:推 s9209122222: 虽然我改了还是 lag 01/15 19:10
35F:推 Bencrie: 要预设就重 build kernel 或下在 kernel cmdline 01/15 23:07
36F:→ Bencrie: 不然就在 /etc/rc.local 之类的 script 去改 sysfs 01/15 23:08
37F:→ Bencrie: 先调成 preemptible kernel + 1000hz tick 吧 01/15 23:10