我共享* NIX服务器(由Site5运行)上运行。我有一个在后台偶尔做一些离线计算运行PHP脚本。它采用100%左右,而CPU运行。我试过不错-ING,就像这样:

nice -n 19 php script.php

但似乎没有任何区别。

有帮助吗?

解决方案

您可以通过您的代码分散usleep(INT $ micro_seconds)。这将迫使你的脚本停止了微量的时间离开CPU来处理其他事务。

将其必要虽然?如果脚本有一个低优先级,这很重要,它的使用CPU的100%......如果有更高优先级的其他进程所需的CPU就不会他们得到他们所需要的时间和你的脚本得到休息(最多100%)?

其他提示

即使niced,如果有的话,它会使用100%的CPU。然而,内核将任何其他(非niced)工艺附带沿着优先。

只要系统响应,并且您可以让其他工作,而它的运行做了,我就不会担心。我在我的系统上运行分布式计算客户端,它吸收了所有可用的CPU周期。因为它具有最低优先级运行,因为所需要的任何和所有其它进程会抢占它。

作为工艺的背景,并且使用100%的CPU它似乎该过程是CPU的约束。这是背景,因此用户必然无法预期,所以,唯一的选择将IO约束。如果你的进程应该没有真正做有趣的IO,脚本本身预计将是CPU绑定,而不仅仅是车。

进程将始终尝试尽可能快地去。如果他们IO约束,他们会用100%的IO,如果他们是CPU的约束,他们会尝试使用100%的CPU。正确编写的过程调度自动的目标是提供公平感对所有进程,这意味着更大的程序获得较低的优先级。你可以用漂亮的进一步降低优先级。 CPU使用仍然是约100%,这意味着没有其他这是目前的CPU结合工艺,但最有可能从网络等待输入。

尼斯的变化如何经常你的PHP结果100%的CPU中,如果有上下文切换,而不是多少相当大的过程。

程序执行系统调用的那一刻,内核可以做真正的工作才得到CPU到另一个进程。你的PHP似乎没有做任何系统调用时,它的全速运行。也就是说,你没有做任何阻塞的I / O(套接字,文件等),看看是否有代码块卡在忙等待。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top