配置 php-fpm

对于PHP-FPM多进程的模式,想要避免内存泄漏问题很简单,就是要让PHP-CGI在处理必定数量进程后退出便可。
不然PHP程序或第三方模块(如Imagemagick扩展)致使的内存泄漏问题会致使内存耗尽或不足。
php-fpm.conf中有相关配置:
#请自行按需求配置php

pm.max_requests = 1024bash

实际上还有另外一个跟它有关联的值max_children,这个是每次php-fpm会创建多少个进程,这样实际上的内存消耗是max_children*max_requests*每一个请求使用内存。ide

另一些粗暴的方法包括创建cron kill掉占用内存过多的php-cgi,php-fpm


1.检查php进程的内存占用,杀掉内存使用超额的进程优化

通常状况下,若是php-cgi进程占用超过1%的内存,就得考虑一下是否要杀掉它了。由于普通状况下,php-cgi进程通常占用0.2%或如下。进程

这里提供一个脚本供各位使用,就是放在cron任务里,每分钟执行一次。crontab

使用crontab -e 命令,而后添加以下调度任务ip

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

kill_php_cgi.sh脚本以下get

#!/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-fpm php fpm内存泄漏、如何避免内存泄漏、c 避免内存泄漏、避免内存泄漏、信息泄漏可致使,以便于您获取更多的相关知识。

相关文章
相关标签/搜索