我需要一次运行一个 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 次。