0
我需要一次運行一個php文件100000次。爲此,我在一個php文件(runmyfile.php)中使用了一個exec命令並使用putty調用該文件。 runmyfile.php文件具有以下代碼。在centos中一次執行php文件100000次
for($i=0;$i<100000; $i++){
exec('php -f /home/myserver/test/myfile.php > /dev/null &');
}
它並行執行100000次myfile.php文件。
這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次。
運行100000個並行進程非常的OS徵稅。你爲什麼需要這個? – Mikpa
好的。那麼我可以在centos中並行運行多少個進程。我需要它來運行cron來進行一些操作。 MySQL表將擁有最新的20億條記錄。 – user3378018
這取決於很多事情,但請解釋原因。也許有更好的解決方案 – Mikpa