解决这个问题的办法是在Wb服务器配置中降低PHP_FCGI MAX REQUESTS的值。
这个参数决定了一个php-cgi进程被创建出来之后,最多接受的PHP请求数,在lighttpd中默认配置是10000。
也就是说这个php-cg进程每接受10000次PHP请求后会终止,释放所有内存,并重新被管理进程启动。
如果把它降低,比如改成100,那么pp-cg重启的周期会大大缩短,偶然的高内存操作造成的问题影响时间也会缩短。
另一个办法则是写一个crontab脚本,定时发现高内存占用的php-cgi进程并向它传送kil指令。