int pri = getpriority(PRIO_PROCESS, 2134);
printf("The original priority of 2134 is :%d", pri);
//cpu_usage of the process in top is 80%, pri is 39 and NICE value is 19
setpriority(PRIO_PROCESS, 20);
int p = getpriority(PRIO_PROCESS, 2134);
printf("priority is set to :%d", p);
在这里,我试图设置一个进程的优先级(pid:2134(。在top命令中,它显示优先级为39,nice值为19。所以这个过程的优先级很低。但是该进程的CPU使用率在70以上。如果我将优先级设置为最小值,则应该减少该进程的CPU使用量。我很困惑是把优先级设置在40..1还是-19.20的范围内。谁能查一下这个吗。任何帮助都将不胜感激。
进程优先级与其分配的cpu使用百分比不成比例。
相反,它只是调度器的一个标记,用于确定要运行的两个进程中的哪一个现在可以运行。
因此,一个高优先级进程与高优先级进程决一雌雄,几乎不会受到关注,而即使是一个低优先级进程在一个空闲的系统上也可以一直运行。
我在C中发现了这篇更改当前进程优先级的帖子,展示了如何使用函数setpriority设置优先级。
您必须使用具有3个参数的setpriority
但你必须是根。
设定优先级的人:http://linux.die.net/man/2/setpriority