我正在寻找一种通过命令行修改进程优先级的方法。我发现内置(bash) nice
和命令renice
允许修改进程的优良性,但不允许修改由内核计算的实际优先级。
有没有可以设置优先级的命令?(或者我混淆了友好和优先级?)
发布于 2011-04-20 07:44:39
在linux中,进程的优先级是动态的:它运行的时间越长,其优先级就越低。进程在实际使用CPU时运行--典型的Linux机器上的大多数进程只是等待I/O,因此不会被算作正在运行。
当运行的进程数超过可用的CPU核心数时,会考虑优先级:优先级越高越好。但是,随着获胜进程随着时间的推移而失去它的可能性,其他进程将在某个时候接管CPU。
nice
和renice
将在优先级中添加/删除一些“点”。具有较高CPU值的进程将获得较少的nice
时间。Root还可以设置一个负的cpu值-进程获得更多的nice
时间。
示例:系统中有两个进程(1和2)计算停机问题和一个CPU核心。缺省值是nice 0
,因此两个进程都只占用大约一半的时间。现在让进程1重置为值10。结果:进程2获得的cpu时间比进程1高得多。
注意:在现代台式机中,有大量的CPU时间可用--它们现在速度很快。不幸的是,HDD在随机I/O上仍然相对较慢,所以即使是一个很好的进程也可以产生足够的I/O流量来显着降低系统的速度。
https://stackoverflow.com/questions/5718567
复制相似问题