idprio和rtprio
记一笔,没啥特别。
Unix系统的分时调度中,nice值(通
在FreeBSD的及时调度(real-time scheduling)实现中,增加了32个「及时(realtime)」优先级和32个「闲时调度(idle)」优先级。用户态进程可以通rtprio系统调用来为进程或线程指定这些优先级。这些优先级不会动态调整,故在抢占式调度中可以一直获得时间片,或只有在系统闲时才获得时间片。
为了方便管理员使用,FreeBSD提供了与之对应rtprio和减nice值一样需要超级用户权限,idprio默认也需要超级用户权限(目前,持锁执行绪可能由于优先级太低而被抢断,从而导致死锁),但可以通过security设1来允许非特权用户使用它。
典型的用法包括:
将Xorg设为realtime优先级,以改善其响应。这个命令必须root身份运行。
📓 注意
副作用:如果Xorg陷入死循环,将没有机会令其终止。
rtprio 31 -`pgrep Xorg`以idle优先级运make buildworld。需要root身份运行或sysctl security设1。
idprio 31 make buildworld对于单机运行的网站来说,也可以用类似的方法来做后台的日志分析处理。
在线阅读本文并参与讨论 delphij's Chaos https://blog.delphij.net/posts/2011/12/idpriortprio/