我正在寻找一种通过命令行修改进程优先级的方法。
我发现内置的(bash)nice和命令renice可以修改进程的优美性,但不能修改内核计算的实际优先级。

是否有允许设置优先级的命令?
(还是让我感到困惑和优先?)

最佳答案

Linux中进程的优先级是动态的:它运行的时间越长,其优先级就越低。一个进程在实际使用CPU时运行-在典型的Linux机器上,大多数进程只是在等待I / O,因此不算在运行中。

当运行的进程多于可用的CPU内核时,将考虑优先级:最高优先级获胜。但是,随着制胜进程随着时间的流逝松散,其他进程将在某个时候接管CPU。
nicerenice将添加/删除优先级中的一些“要点”。 nice值较高的进程将获得较少的CPU时间。根也可以设置一个负的nice值-进程获得更多的CPU时间。

示例:有两个过程(1和2)计算暂停问题,系统中有一个CPU内核。默认值为nice 0,因此两个进程每个都占用大约一半的CPU时间。现在让renice进程1的值为10。结果:与进程1相比,进程2获得的CPU时间明显增加。

注意:在现代台式机中,有很多可用的CPU时间-这些天来它们很快。不幸的是,HDD在随机I / O上仍然相对较慢,因此即使是一个不错的进程也可以生成足够的I / O流量,从而显着降低系统速度。

关于linux-kernel - Linux系统上的优先级处理,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5718567/

10-13 09:32