减小Fcgi环境配置下php-cgi进程所占内存,减小php-cgi重启周期

在fastcgi(FCGI)+PHP的配置中,php-cgi往往比较大占内存,本文研究一下减小php-cgi占内存的方法,本文减小php-cgi占内存的原理是,尽量减小系统中的php-cgi.exe的同时运行进程数,可以减小php-cgi.exe总体占内存的数量,我们可以通过减小php-cgi重启周期来实现。

在C:\WINDOWS\system32\inetsrv\fcgiext.ini 文件中可以设定php-cgi进程相关参数,如:

[Types]
php = PHP
[PHP]
ExePath=C:\php-5.3.8-nts-Win32-VC9-x86\php-cgi.exe
InstanceMaxRequests=10000
EnvironmentVars=PHP_FCGI_MAX_REQUESTS:10000
RequestTimeout=600
ActivityTimeout=900

这里:

InstanceMaxRequests=10000
EnvironmentVars=PHP_FCGI_MAX_REQUESTS:10000

这个参数决定了一个php-cgi进程被创建出来之后,最多接受的PHP请求数,在lighttpd中默认配置是10000。也就是说这个php-cgi进程每接受10000次PHP请求后会终止,释放所有内存,并重新被管理进程启动。如果把它降低,比如改成100,那么php-cgi重启的周期会大大缩短,偶然的高内存操作造成的问题影响时间也会缩短。

一个php-cgi程序占用7-25M内存,我的占用是14-18M内存,决定于php模块开启多少。

减小php-cgi进程的同时存在数目,可以减小内存占用值,我现在用的服务器,把PHP_FCGI_MAX_REQUESTS值调整到了500,减小了php-cgi进程的数量,占用内存也减小了,反应速度比以前快了不少,至少调整到多少,可根据您的站点访问量来决定。

原创文章,作者:斑斓网站长,如若转载,请注明出处:https://www.argb.net/reduce-the-php-cgi-processes-share-memory-reducing-the-cycle-to-restart-php-cgi.html

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注