欢迎来到互联时空IDC互联网数据中心!

咨询:0755-88848868  400-645-8838

欢迎来到互联时空IDC互联网数据中心!

咨询:0755-88848868  400-645-8838

windows 2003+iis6中如何减少php-cgi.exe进程数量和所占内存大小

浏览:1111

 用了下最低配置的盛大云主机,架设了DISCUZX2.5论坛。本来听说fastcgi比isapi好就在服务器中装上了,配置环境为windows 2003+IIS6+fastcgi(FCGI)+PHP5.2.17,经过与很长一段时间观察,发现工作在FastCGI模式下的PHP会占用越来越多的内存,访问量稍微多点php-cgi进程就多了N个,同样情况下能比原来用isapi模式的时候多出几百M,我的服务器内存只有512M伤不起啊。
我在网上搜索了一下,发现还有不少人面临同样的问题。来自PHP官方的一个比较正式的解释是:php-cgi进程并没有内存泄漏,php-cgi会在每个请求结束的时候回收脚本使用的全部内存,但是并不会释放给操作系统,而是继续持有以应对下一次PHP请求。这样做大概是为了减少内存碎片化或者解决从系统申请内存之后又释放回操作系统所需要的时间不可控问题。可是如果偶然一次PHP请求使用了诸如ftp或者zlib这样的大内存操作,那么将导致一大块系统内存被php-cgi持续占有,不能被利用。
解决这个问题的办法是在web服务器配置中优化fastcgi配置文件参数。
在C:WINDOWSsystem32inetsrvfcgiext.ini 文件中可以设定php-cgi进程相关参数,如:
[Types]
php = PHP
[PHP]
ExePath=C:php-5.3.8-nts-Win32-VC9-x86php-cgi.exe
maxInstances=100
InstanceMaxRequests=10000
EnvironmentVars=PHP_FCGI_MAX_REQUESTS:10000
RequestTimeout=600
ActivityTimeout=900
在上面的配置中:
ExePath 指定了FastCGI解析程序的路径,
instanceMaxRequests 指定了每个实例可以处理的最大请求数,
maxInstances 指定可以启动的最大实例数目,
EnvironmentVars 创建了一个环境变量 PHP_FCGI_MAX_REQUESTS ,默认值设为10000,
requestTimeout 指定了请求的超时时间为600秒,
activityTimeout 指定了活动会话超时时间为900秒。
一下是建议值:
maxInstances=
把这个值改小
建议
512M 内存的改maxInstances=50
1G 内存的改maxInstances=80
2G 内存的改maxInstances=140
再修改
InstanceMaxRequests=
把这个值改小
建议
512M 内存的改InstanceMaxRequests=200
1G 内存的改InstanceMaxRequests=300
2G 内存的改InstanceMaxRequests=500

改完, 重启IIS。

instanceMaxRequests PHP_FCGI_MAX_REQUESTS 这两个参数决定了一个php-cgi进程被创建出来之后,最多接受的PHP请求数,在lighttpd中默认配置是10000。也就是说这个php-cgi进程每接受10000次PHP请求后会终止,释放所有内存,并重新被管理进程启动。如果把它降低,比如改成100,那么php-cgi重启的周期会大大缩短,偶然的高内存操作造成的问题影响时间也会缩短。
maxInstances 这个参数指定可以启动的最大实例数目,即php-cgi.exe进程的数目。如果把它降低,比如改成100,那么在任务管理器的进程中最多只有php-cgi.exe进程,php-cgi.exe所占用的总内存将大大减少。
我现在用的服务器为windows 2003操作系统,4G内存,一个php-cgi.exe程序占用7-25M内存,我把maxInstances值调为300,减少了php-cgi.exe进程的总数量,占用内存也减小了,反应速度比以前快了不少,至少调整到多少,可根据您的站点访问量来决定。

windows 2003+iis6中如何减少php-cgi.exe进程数量和所占内存大小
长按图片保存/分享
0
图片展示

 售前热线:0755-88848868

 售后支持:0755-88848825

  400-645-8838

深圳总公司地址:广东省深圳市坂田街道华为科技城布龙路创兴时代A座506-507

广州分公司地址广东省广州市天河区科韵路天河软件园广州信息港C座2楼

深圳市互联时空科技有限公司 版权所有 严禁复制 © 2003-2020 中文域名:深圳服务器.COM  互联时空.COM

广东省IDC、ISP、ICP三证认证企业 《中华人民共和国增值电信业务经营许可证》粤B2-20050516号

粤公网安备 44030702000489号

               

在线客服
联系方式
二维码
置顶
联系方式
客户经理-严(微信同号)
18344478808
客户经理-李(微信同号)
15018528878
客户经理-王(微信同号)
13751118835
客户经理-霞(微信同号)
18826508848
客户经理-黄(微信同号)
13530498881
全国服务热线:
4006-458-838
二维码
二维码 二维码