Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php linux服务器上的CPU使用率有多高_Php_Linux_Cpu Usage - Fatal编程技术网

Php linux服务器上的CPU使用率有多高

Php linux服务器上的CPU使用率有多高,php,linux,cpu-usage,Php,Linux,Cpu Usage,我正在运行一些PHP作业,它从一个Web服务中获取十万个数据并将它们插入数据库。这些作业占用服务器的CPU使用量 我的问题是,多少钱算高 当我在linux服务器上执行“top”命令时, 似乎有77%。。如果我同时运行更多的作业,它将上升到100%以上。对我来说它似乎很高,(超过100%是否意味着它在第二个CPU上运行?) 28908 mysql 15 0 152m 43m 5556 S 77.6 4.3 2099:25 mysqld 7227 apache 15 0 104m 79m 5964

我正在运行一些PHP作业,它从一个Web服务中获取十万个数据并将它们插入数据库。这些作业占用服务器的CPU使用量

我的问题是,多少钱算高

当我在linux服务器上执行“top”命令时, 似乎有77%。。如果我同时运行更多的作业,它将上升到100%以上。对我来说它似乎很高,(超过100%是否意味着它在第二个CPU上运行?)

28908 mysql 15 0 152m 43m 5556 S 77.6 4.3 2099:25 mysqld 7227 apache 15 0 104m 79m 5964 S 2.37.8 4:54.81 httpd 此服务器中还托管有网页/项目。每小时的作业可能会影响服务器以及其他web项目的加载时间

如果高,有什么方法可以提高CPU的效率


任何人都可以开导吗?

我认为77%绝对是高的

可能有很多方法可以提高作业的效率(递归导入),但给出的信息不多

快速修复方法是使用nice cmd调用脚本, 再加上几次睡眠,随着时间的推移,负荷会逐渐增加

我猜你在导入过程中也会使网络饱和,所以你可以分割作业吗?这样可以防止你的站点停滞

问候,,
/t

你总能完成你的任务

使用nice命令,您可以或多或少地赋予进程优先级

这些作业占用服务器的CPU使用量。 我的问题是,多少钱算高

这完全是主观的。在计算节点上,每个核心的CPU使用率几乎总是100%。那么高吗?不,一点也不,这是为了钱而购买的硬件的正确使用。

一个更好的指标是,如果我简化,它是由于资源不足而等待的任务数量


您可以在
uptime
命令中访问它,例如:
13:05:31最多6天,22:54,5个用户,平均负载:0.01,0.04,0.06
。最后的3个数字是最后一分钟、最后5分钟和最后15分钟的平均负荷。如果它达到
1.00
,(无论内核数量如何),它都在等待它。

尼斯不会有多大帮助,因为是mysql占用了您的cpu, 在php客户机上安装nice,如中所示

nice -10 php /home/me/myjob.php
不会有什么大区别

最好将作业分成更小的部分,调用php脚本 从cron开始,像

<?
ini_set("max_execution_time", "600")
//
//1. get the file from remote server, in chunks to avoid net saturation
$fp = fopen('http://example.org/list.txt');
$fp2 = fopen('local.txt','w');
while(!feof($fp)) {
  fwrite($fp2,fread($fp,10000));
  sleep(5);
}
fclose($fp/fp2);

while(!eof(file) {
  //read 1000 lines
  //do insert..
  sleep(10);
}
//finished, now rename to .bak, log success or whatever...

是的,每个CPU 100%。正常情况下,CPU负载恒定是个问题(但只有当它是个问题时,这才是个问题,保持“松弛”是好的,这样在需要时可以获得额外的处理能力,而且空闲更多的CPU可以运行得更冷/耗电更少)。如果PHP作业在功能需求范围内完成,并且没有违反任何使用指南或使其他进程陷入饥饿,我会说“足够好”。为了提高流程的效率,需要进行详细的审查/分析和分析。不过,不确定超线程或等效程序是否适合。我的平均负载是..平均负载:0.20、0.23、0.18it您不会遇到资源匮乏(在过去15分钟内,无论是处理器、磁盘还是网络)。你的电脑做它的工作没有困难。有什么有用的网站或关键字我可以研究一下吗?
<?
ini_set("max_execution_time", "600")
//
//1. get the file from remote server, in chunks to avoid net saturation
$fp = fopen('http://example.org/list.txt');
$fp2 = fopen('local.txt','w');
while(!feof($fp)) {
  fwrite($fp2,fread($fp,10000));
  sleep(5);
}
fclose($fp/fp2);

while(!eof(file) {
  //read 1000 lines
  //do insert..
  sleep(10);
}
//finished, now rename to .bak, log success or whatever...