Questions tagged «nice»

更改进程优先级的工具,可为它分配更多或更少的CPU时间。

3
为什么不能使用renice来增加流程的价值?
来自man renice: 超级用户以外的用户只能更改其拥有的进程的优先级,并且只能在0到PRIO_MAX(20)的范围内单调增加其“ nice值”(出于安全原因)[...] 因此,我可以将renice自己的进程向上(给它们较低的优先级),但从不向下: $ renice 10 22316 22316 (process ID) old priority 0, new priority 10 $ renice 9 22316 renice: failed to set priority for 22316 (process ID): Permission denied 为什么是这样?我能理解为什么普通用户不能将漂亮的值设置为小于0的原因,但是为什么可以将优先级降低到10却又不能将其提高到9?这有什么“安全原因”?我有权启动一个值为9的进程,那么为什么我不能将其降为9? 编辑:我应该学会向下滚动。事实证明,这已列为bug man renice: BUGS Non super-users can not increase scheduling priorities of their own processes, even …
25 nice  priority 

5
如何减少Linux上一个进程的所有线程(和子线程)?
Linux没有(还)遵循POSIX.1标准,它说的是一renice对过程的影响“的过程中所有的系统范围线程”,因为根据并行线程(7)DOC “线程不共用一个很好的价值。” 但是,有时,renice与给定进程相关的“一切” 可能很方便(一个示例是Apache子进程及其所有线程)。所以, 我怎么能renice全部线程属于给定进程? 我如何才能将renice所有子进程都属于给定进程? 我正在寻找一个相当简单的解决方案。 我知道流程组有时会有所帮助,但是,它们并不总是与我想做的事情相匹配:它们可以包含更广泛或不同的流程集。 使用cgroupManaged by systemd可能也有帮助,但是即使我有兴趣了解它,我也大多在寻找“标准”解决方案。 编辑:还说man (7) pthreads:“一个进程中的所有线程都放在同一线程组中;线程组的所有成员共享相同的PID”。那么,甚至renice没有它自己的PID的东西也可能吗?
22 linux  process  nice  thread 

2
为什么精美度从-20到19?
该nice命令允许您调整程序的调度优先级(“ niceness”)。在我使用过的所有类Unix系统上,niceness由一系列整数指定,其中-20是最有利的调度优先级,默认值为0,最不利的调度优先级是19。 将默认值设为0足够直观,但是为什么选择-20和19作为范围的端点?为什么不使用-128和127,它们恰好适合带符号的8位字节?还是为什么不使用-100到100(对于十进制思维的人来说更直观),或者类似地但在人机工程学上更容易使用-99到99?-20至19的范围是任意选择的还是nice与最初与之交互的调度程序的内部有某种关系?(我知道,至少对于Linux来说,今天没有这种关系,Linux的调度程序使用的优先级在0到139之间。但是,我对-20到19范围的历史原因很感兴趣。)

1
亲子流程
有人可以告诉我指定nice级别与子进程之间的关系吗? 例如,如果我的默认nice值为0,并且我使用来启动了脚本nice 5,那么该脚本又启动了一些子进程(在这种情况下,并行启动了大约20个子进程),那么子进程的优点是什么?
22 linux  process  nice 

1
怎么工作顺利?
sched_setscheduler说: 所有调度都是抢占式的:如果具有较高静态优先级的进程可以运行,那么当前正在运行的进程将被抢占并返回到其静态优先级的等待列表。 而setpriority说 每当系统上有其他更高优先级的负载时,这都会导致极低的良好值(+19)真正为进程提供很少的CPU,并使较高的良好值(-20)为需要它的应用程序提供大部分CPU 那么,改变尼斯值将如何影响程序的执行?它与RT调度类似(具有较高尼斯值的程序将中断具有较低尼斯值的程序)吗? 互联网上的所有信息都是如何使用nice以及如何更改进程的优先级。没有链接说明具有不同优先级的流程的确切工作方式。我什至找不到源代码。

2
(-)的niceness值是什么意思?
根据手册页和维基百科;nice范围从-20到20。 但是,当我运行以下命令时,我发现某些进程具有非数字值,例如(-)。请参阅左侧第六栏,标题为“ NI”。 (-)的优美表示什么? ps axl F UID PID PPID PRI NI VSZ RSS WCHAN STAT TTY TIME COMMAND 4 0 1 0 20 0 19356 1548 poll_s Ss ? 0:00 /sbin/init 1 0 2 0 20 0 0 0 kthrea S ? 0:00 [kthreadd] 1 0 3 2 -100 …

7
如何启动一个数值为-20的进程,而不给它root特权?
我想以-20的不错的价值开始一个过程。这要求我使用类似-的命令sudo nice -n -20 matlab。但是,这也会以root身份启动matlab。有没有办法让matlab成为非root用户? 我当前的方法是-- sudo nice -n -20 sudo -u myusername matlab在我看来,这很像黑客。有直接的方法可以做到这一点吗?
18 process  priority  nice 

3
设置管道命令的优美性
我需要执行一组更改了尼斯级别的“管道”命令。例: nice -n 15 command1 | command2 | command3 在这种情况下,仅将command1的好感更改为“ 15”。如何更改整个命令集(command1,command2和command3)?
15 nice 

2
在桌面环境中使用和了解与系统调度有关的选项
在systemd服务文件中,可以设置以下与调度有关的选项(在systemd.exec手册页中,如果我输入错了,请纠正我): 尼斯 为执行的进程设置默认的尼斯级别(调度优先级)。取介于-20(最高优先级)和19(最低优先级)之间的整数。有关详细信息,请参见setpriority(2)。 这是熟悉的不错的水平。由于最近的Linux内核具有“自动分组”功能,因此其效果似乎已“被颠覆”。因此,以下选项可能是我真正想要设置的选项,以使进程保持良好的桌面体验。 CPUSchedulingPolicy 设置已执行进程的CPU调度策略。采用其他,批处理,空闲,fifo或rr中的一种。有关详细信息,请参见sched_setscheduler(2)。 CPUSchedulingPriority 设置已执行进程的CPU调度优先级。可用优先级范围取决于所选的CPU调度策略(请参见上文)。对于实时调度策略,可以使用1(最低优先级)和99(最高优先级)之间的整数。有关详细信息,请参见sched_setscheduler(2)。 CPUSchedulingResetOnFork 采用布尔参数。如果为true,则将在执行的进程派生时重置提升的CPU调度优先级和策略,因此不会泄漏到子进程中。有关详细信息,请参见sched_setscheduler(2)。默认为false。 我了解最后的选择。从前两个方面的解释中可以得出,我可以选择一个调度策略,然后根据该策略确定优先级。对我来说,尚不清楚我应该为哪种任务选择什么。例如,为备份任务选择“空闲”是否安全(因为要进行重复数据删除,因此占用大量CPU,还是比较安全)? 总的来说,我想要的是对每个策略都有一个易于理解的概述,以及每个策略的优先级和针对特定目的的适用性。同样,与尼斯水平的相互作用也是令人感兴趣的。 除了CPU调度,还有IO调度。我猜这对应于ionice(如果我错了,请纠正我)。 IOSchedulingClass 设置已执行进程的I / O调度类。取0到3之间的整数,或者取值为none,实时,最大努力或空闲字符串之一。有关详细信息,请参见ioprio_set(2)。 IOSchedulingPriority 设置已执行进程的I / O调度优先级。取0(最高优先级)到7(最低优先级)之间的整数。可用优先级取决于所选的I / O调度类(请参见上文)。有关详细信息,请参见ioprio_set(2)。 我们在这里看到的结构与CPU调度相同。我也在寻找相同的信息。 对于所有的“计划”选项,所指的手册页对我来说还不够清楚,主要是在将内容翻译成某种程度上具有技术倾向的台式机用户的观点。

4
以非常低的优先级运行linux进程?
我有一个常规过程,它并不那么重要,但是会消耗大量的CPU能力,还有一个非常重要的过程,但是它花费了大部分时间空闲,但是当找到工作时,它确实需要很高的计算能力 我试图与运行nice -20 ./low_priority_process和nice --20 ./high_priority_process,但仍然较低优先级占用CPU的显著量时高优先级的进程是需要的人,我怎么可以运行一个过程,真的会产生或使用时CPU供电另一个进程甚至自动挂起
12 process  cpu  htop  priority  nice 

2
如何允许用户将流程的优先级定为负面?
我希望用户使用负的尼斯值在系统上运行特定的进程。我不能简单地将进程分派到后台,因为此特定程序是Minecraft服务器,并且我依靠命令行来控制服务器。 我当前的bash脚本如下所示(重要部分): sleep 10 && \ sudo renice -n $NICENESS $(ps -u $(id -u) -o "%p:%c" | sed -n "s/:java$//p") & \ java -Xmx8G -Xms2G -jar minecraft_server.jar nogui sleep只是延迟执行renice。renice本身使用ps用户自己的ID来检查Java进程。在不同的用户下可能还会出现其他Java实例,但是minecraft服务器在其自己的用户minecraft下运行。 我显然不想每次启动服务器时都输入密码。 来自/ etc / sudoers: minecraft ALL = NOPASSWD: /etc/renice 有没有更优雅的方法可以做到这一点?与NOPASSWD:选项一起使用时nice,简单地使用不是一个选项,sudo nice bash这将是一个很大的安全问题。

2
设置给定用户的默认nice值(limits.conf)
有人可以告诉我如何设置用户的默认值nice(如所示top)吗?我发现/etc/security/limits.conf是放置该位置的地方,但是如果我放以下任何一个: username_of_a_guy - nice 19 username_of_a_guy soft nice 19 username_of_a_guy hard nice 19 它不起作用(应该起作用,对吗?)。 请注意,自那时以来,我已经重新启动。 非常感谢您的帮助。我正在使用debian不稳定(最新)。 内容: 在我的工作中,我们有一个本地网络:每个人都有自己的计算机,并且每个人都可以在其他人的计算机上创建一个帐户(如果愿意)。经验法则只是,如果您在其他人的计算机上工作,请完善您的流程(nice 19)。 我想一次将给定用户的默认nice值设置为19。
12 login  nice  limit 


2
Unix命令最好的是什么?
对于快速的基准测试,如何将nice和ionice结合在一起以发挥最大的作用,即命令使用尽可能少的资源(完全不闲置)? (我认为它类似于`nice -n 19 ionice -c 2 [command],但不确定ionice的“ -n”(类数据参数),手册页对其相关性含糊不清。)

2
如何使我的所有流程都从美好开始5
我知道niceness值是从父进程的niceness值继承的,但是我可以全局更改特定用户(我自己)的默认niceness值。 在这种情况下,我想到了一个小型的便捷服务器,该服务器专门通过进行访问ssh。所以,我想我可以我的默认外壳从改变/bin/bash到/etc/bash5时/etc/bash5就是这个脚本: #!/bin/sh nice -n 5 /bin/bash #file privileges: root:root 755 这让我感到骇然,容易出错。肯定有更好的办法。 我对通用解决方案最感兴趣,这也适用于台式机/笔记本电脑系统。 编辑:我尝试了建议的limits.conf更改,但不能按预期工作: root@server# addgroup nice root@server# adduser myself nice root@server# echo '@nice soft nice 5' >> /etc/security/limits.conf 然后,从我的客户端计算机上,我说 myself@client$ ssh server myself@server$ sleep 1h & myself@server$ htop 现在,该sleep过程的初始初始值为0,但是如果我将的值更改F8为19,然后尝试再次将F7 其5减小,则该值在停止。 Edit2:解决方案 尽管有悖常理,但实际上不必使用中的nice项目limits.conf,而是必须使用priority。 @nice soft priority 5
8 users  settings  nice 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.