1 つの php ファイルを一度に 100000 回実行する必要があります。そのために、phpファイル(runmyfile.php)でexecコマンドを使用し、パテを使用してそのファイルを呼び出しました。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回正しく実行できるように。