Lui*_*uis 7 linux process priority nice
我知道您可以使用setpriority
或nice
或来更改流程的好处renice
。
但是,Linux 是否会在没有用户输入的情况下自动调整/更改进程优化?
我有一个setpriority
在 C 中使用的进程,如下所示:
setpriority(PRIO_PROCESS, 0, -1)
Run Code Online (Sandbox Code Playgroud)
当进程运行时,我可以通过运行htop看到它的 niceness 值现在是 -1 。
在调查远程机器上的崩溃时,向我提供了 htop 的输出。我注意到此进程的 niceness 值在一个实例上更改为 0,在另一个实例上更改为 6。我想知道这是由内核更改的,还是更改此值的唯一方法是让用户或脚本故意进行更改。
据我所知,Linux 内核不会改变进程的良好性,而且我不明白为什么会这样做,因为它不必降低进程的优先级。友善度是提供给内核的信息,告诉它该进程愿意有多友善。内核调度程序可以随意考虑此信息,以更改进程的优先级,但不需要更改其值。
另一方面,在用户空间中,有像AND这样的守护进程,其任务是根据管理员设置的规则重新启动进程。你的服务器上安装了这样的守护进程吗?
但是,AND 守护进程不会限制 root 拥有的进程,并且由于您设置了-1
with的优先级setpriority()
,我认为这里就是这种情况。因此,我认为这种美好变化的唯一原因是用户交互。
也就是说,由于您正在使用htop
,因此有可能通过按]键或F8键无意中重新启动了该过程。