2012-03-21 58 views
3

我现在在服务器上运行了几百个php脚本。它们中的每一个都运行循环并将数据插入到我的数据库中。我这样做是为了学习mysql中的查杀过程。所以为了杀死它们,我编写了一个php文件,它循环遍历整个流程列表并逐一杀死它们。问题是这个脚本没有执行。它保持加载在我的浏览器(没有错误...)。另外请注意,我不能在mysql中手动启动一个show processlist,因为mysql现在完全被重载,并且没有任何响应。所以我猜想我的'杀死进程'脚本是队列中的最后一个脚本,只会在最后执行。所以我的问题是要知道是否有办法在mysql中强制一个进程并将其放在优先级第一的位置。预先感谢您的回复。干杯。马克PHP MySql - 如何确定进程的优先级

这是怎么了查杀流程:

$qry = mysql_query("SHOW FULL PROCESSLIST"); 
while ($row=mysql_fetch_array($qry)) { 
    $process_id=$row["Id"]; 
    $sql="KILL $process_id"; 
    mysql_query($sql); 

} 
+0

我认为这是与服务器工作有关的问题。告诉我你是如何Killining :-) – zod 2012-03-21 15:16:22

+0

你好zod。我只是编辑帖子... – Marc 2012-03-21 15:18:03

+1

做杀人需要特权!更好的脚本在那里..尝试打印也是http://dev.mysql.com/doc/refman/5.0/en/kill.html – zod 2012-03-21 15:23:37

回答

0

我不知道这是否会实际影响MySQL的,但在Unix/Linux,你可以尝试调用proc_nice()靠近你的脚本的顶部负增量(如-20)。它基本上和nice command一样。

Wikipedia page on nice

” ...好用于调用一个实用程序或shell脚本与特定的优先级,从而使该过程或多或少的CPU时间比其他进程的美好的事物 - 。 20是最高优先级,19或20是最低优先级。进程的缺省好处是从其父进程继承的,通常为0。

+0

有一个类似的命令叫''pcntl_setpriority()'](http://php.net/manual/en/function.pcntl-setpriority.php)可让您设置任何进程的优先级。 – 2017-01-17 02:48:07