php - centos中一次执行php文件100000次

标签 php mysql memory-management centos ulimit

我需要一次运行一个 php 文件 100000 次。为此,我在 php 文件(runmyfile.php)中使用了 exec 命令,并使用 putty 调用该文件。 runmyfile.php 文件具有以下代码。

for($i=0;$i<100000; $i++){
exec('php -f /home/myserver/test/myfile.php > /dev/null &');
}

它并行执行 myfile.php 文件 100000 次。

这个 myfile.php 从 mysql 数据库表中获取行并执行一些计算并将这些值插入到另一个表中。

但是当运行 100000 次时,它会挂起服务器。我使用centos作为服务器。

有时我也会收到资源不可用错误。

如果我运行它 1000 次,它就可以正常工作。

当我检查以下ulimit -a

core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 514889
max locked memory       (kbytes, -l) unlimited
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1000000
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) 1024
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

我的mysql max_connection是200000

有什么设置需要更改吗?这样我就可以正确执行我的 php 文件 100000 次。

最佳答案

也许您需要重新设计您的应用程序。如果您需要每天处理 Mysql 数据库中的 20 亿条记录,我认为并行运行 100000 个脚本并不是最好的方法。

如果我理解正确的话,这意味着每个脚本处理 20000 条记录。不可能在每个脚本中处理更多记录吗?

看看Big Data

关于php - centos中一次执行php文件100000次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22165937/

相关文章:

php - 我是否打算为 Laravel 中的中间表创建模型?

mysql - MySQL 查询字符串不正确

c++ - 如何让一个类通过作用域分配器?

php - 使用 doctrine 2 进行批处理 INSERT IGNORE 的最有效方法

php - 将闭包作为新方法绑定(bind)到类

php - 自offline_access弃用以来如何延长访问 token 的有效性

mysql - 如何从每个循环的 mysql_fetch_array 的 while 循环中获取行号?

mysql - 如何在 Rails 中关闭 MySQL 严格模式

cocoa - NSUndoManager 是否保留其参数?

c++ - 为什么在删除对象之前调用复制构造函数?