大家好我有一个奇怪的问题,
我有一个在Centos 5.x上运行的cli php脚本,它使用usleep(somtimes 1sec,有时2秒,somtimes 100ms取决于它)如果需要一些等待,但我注意到它曾经在usleep()它似乎使用了大约40%的空闲CPU:
Cpu(s): 5.3%us, 21.3%sy, 0.0%ni, 57.2%id, 0.0%wa, 0.0%hi, 0.0%si, 16.1%st
任何想法?
欢呼声
答案 0 :(得分:4)
对于我来说,使用非常简单的测试用例不会发生这种情况。在您的系统上尝试以下操作,看看是否仍然有足够的CPU时间。
脚本test.php:
<?php
for ($n=0;$n<1000;$n++)
{
usleep(10);
}
?>
然后在命令行运行:time php test.php
我的结果如下:
[ar@arctic ~]$ cat /etc/redhat-release
CentOS release 5.2 (Final)
[ar@arctic ~]$ time php test.php
real 0m1.020s
user 0m0.013s
sys 0m0.006s
您可以看到,与实际(或已用)时间相比,用户和系统时间非常小。即CPU利用率非常低。
答案 1 :(得分:3)
在Windows系统下,如果未将脚本执行的时间限制设置为0(set_time_limit(0);
),则在使用sleep或usleep函数时,php可执行文件将占用50%的CPU功率。