类别:PHP问题 / 日期:2019-12-02 / 浏览:74 / 评论:0

关于PHP-FPM多历程的形式,想要防止内存走漏题目很简单,就是要让PHP-CGI在处置惩罚肯定数目历程后退出即可。

不然PHP顺序或第三方模块(如Imagemagick扩大)致使的内存走漏题目会致使内存耗尽或不足。

php-fpm.conf中有相干设置: (引荐进修:PHP视频教程)

#请自行按需求设置
pm.max_requests = 1024

实际上另有另一个跟它有关联的值max_children,这个是每次php-fpm会竖立多少个历程,如许实际上的内存斲丧是max_children*max_requests*每一个要求运用内存。

别的一些粗犷的要领包含竖立cron kill掉占用内存过量的php-cgi

1.搜检php历程的内存占用,杀掉内存运用逾额的历程

平常情况下,假如php-cgi历程占用凌驾1%的内存,就得考虑一下是不是要杀掉它了。由于一般情况下,php-cgi历程平常占用0.2%或以下。

这里供应一个剧本供列位运用,就是放在cron使命里,每分钟实行一次。

运用crontab -e 敕令,然后增添以下调理使命

* * * * * /bin/bash /usr/local/script/kill_php_cgi.sh

kill_php_cgi.sh剧本以下

* * * * * /bin/bash /usr/local/script/kill_php_cgi.sh

kill_php_cgi.sh剧本以下

#!/bin/sh
#假如是要杀掉php-fpm的历程,下面的语句中php-cgi请改成php-fpm
pids=`ps -ef|grep php-cgi|grep -v "grep"|grep -v "$0"| awk '{print $2}'`
if [ "$pids" != "" ];then
for  pid  in   $pids;
do
kill -9 $pid
done

fi

2.增添内存,将PHP_FCGI_MAX_REQUESTS的值设置成跟你内存总存储量相对应的值

3.优化顺序,下降处置惩罚每次要求占用的内存大小

假如PHP-FPM可以供应设置子历程内存凌驾指定大小就被kill,那就费事多了

以上就是php写定时器怎样防止内存泄漏的细致内容,更多请关注ki4网别的相干文章!

打赏

感谢您的赞助~

打开支付宝扫一扫,即可进行扫码打赏哦~

版权声明 : 本文未使用任何知识共享协议授权,您可以任何形式自由转载或使用。

 可能感兴趣的文章

评论区

发表评论 / 取消回复

必填

选填

选填

◎欢迎讨论,请在这里发表您的看法及观点。