当前位置:首页iis6中如何减少php-cgi.exe进程数量and FastCGI+PHP5.3.3的配置方法 举报文章

iis6中如何减少php-cgi.exe进程数量and FastCGI+PHP5.3.3的配置方法

作者:admin    来源:用户投稿    时间:2015.6.11   

  FastCGI的优化配置

  FastCGI优化配置文件fcgiext.ini,它在%windir%\system32\inetsrv里。我们将尝试用两种办法进行配置:FastCGI管理脚本fcgiconfig.js;记事本编辑fcgiext.ini。

  脚本配置FastCGI

  打开你的命令行cmd.exe,切换到目录 %windir%\system32\inetsrv。复制下面内容,回车执行以下即可完成。请根据需要设置后面的参数。

  1 cscript fcgiconfig.js -set -section:"PHP" -InstanceMaxRequests:5000

  2

  3 cscript fcgiconfig.js -set -section:"PHP" -EnvironmentVars:PHP_FCGI_MAX_REQUESTS:5000

  4

  5 cscript fcgiconfig.js -set -section:"PHP" -RequestTimeout:360

  6

  7 cscript fcgiconfig.js -set -section:"PHP" -ActivityTimeout:120

  脚本的含义,分别是:

  设置应用程序池回收。FastCGI进程请求数达到InstanceMaxRequests数值5000,应用程序池将自动回收。默认值是1000。

  当环境变量PHP_FCGI_MAX_REQUESTS达到10000将自动回收应用程序池。

  RequestTimeout 设置请求超时时间,也就是请求允许的最大时间,如果FastCGI进程请求超过此设置将被禁止,值是90秒。

  ActivityTimeout 指定FastCGI进程请求的最大活跃时间,在设定时间内,FastCGI进程和IIS没有通信,将终止进程。默认值是70秒。

  注意:脚本命令是全局设置,针对服务器上所有以FastCGI运行的PHP网站。因此对于多站点的虚拟机来说,InstanceMaxRequests设置成PHP网站数X500相对理想。

  500是变数。如果有10个网站,那么200X50=5000,类推。流量大的服务器,数值设置过小频繁回收应用程序池,并不是什么明智的做法。——虽然,系统回收了不少资源。

  RequestTimeout数值过大,无疑将让更多消耗系统资源的请求运行;ActivityTimeout设置为120秒不活动就断开好,还是30秒不活动就断开好,因人而异。

  复制粘贴适合懒人

  FastCGI配置文件fcgiext.ini设置

  InstanceMaxRequests=10000

  EnvironmentVars=PHP_FCGI_MAX_REQUESTS:10000

  RequestTimeout=360

  ActivityTimeout=120

  把上面代码复制到fcgiext.ini的末尾,保存就好了。

  PHP5.3.6的优化配置

  PHP5.3.6的php.ini配置也分为两部分:关于FastCGI的配置;关于PHP本身的配置。我的PHP5.3.6安装在C:\PHP。

  PHP.ini关于FastCGI部分

  fastcgi.impersonate = 1

  cgi.fix_pathinfo=1

  cgi.force_redirect = 0

  PHP.ini关于自身的部分

  一、搜索extension_dir,去掉前面注释“;”,修改成:

  1 extension_dir = "c:/php/ext"

  二、搜索date.timezone,去掉前面注释“;”,修改成:

  1 date.timezone = "asia/shanghai"

  三、搜索下面,然后去掉前面的注视“;”

  extension=php_gd2.dll

  extension=php_mbstring.dll

  extension=php_mysql.dll

  如此这般你的PHP基本可以畅通无阻了。至于一些更高级的修改,我们没有必要研究那么深,不是吗?

  windows 2003+IIS6中优化fastcgi配置文件fcgiext.ini,减少php-cgi.exe进程数量和所占内存大小

  本来听说fastcgi比isapi好就在服务器中装上了,配置环境为windows 2003+IIS6+fastcgi(FCGI)+PHP5.2.17,经过与很长一段时间观察,发现工作在FastCGI模式下的PHP会占用越来越多的内存,访问量稍微多点php-cgi进程就多了N个,同样情况下能比原来用isapi模式的时候多出几百M,我的服务器内存只有2G伤不起啊。

  我在网上搜索了一下,发现还有不少人面临同样的问题。来自PHP官方的一个比较正式的解释是:php-cgi进程并没有内存泄漏,php-cgi会在每个请求结束的时候回收脚本使用的全部内存,但是并不会释放给操作系统,而是继续持有以应对下一次PHP请求。这样做大概是为了减少内存碎片化或者解决从系统申请内存之后又释放回操作系统所需要的时间不可控问题。可是如果偶然一次PHP请求使用了诸如ftp或者zlib这样的大内存操作,那么将导致一大块系统内存被php-cgi持续占有,不能被利用。

  解决这个问题的办法是在web服务器配置中优化fastcgi配置文件参数。

  在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

  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进程的总数量,占用内存也减小了,反应速度比以前快了不少,至少调整到多少,可根据您的站点访问量来决定。

  版权:37路论坛

  本文链接地址:http://www.37lu.net/thread-25227-1-1.html

  欢迎转载,转载时必须注明链接和出处。

好文打赏,给Ta鼓励
扫一扫用手机阅读本文
Tags:如何  减少  进程  数量  配置  方法  
  • 相关搜索
图片推荐
    SEO的核心是用户体验OR用户忠诚度

    SEO的核心是用户体验OR用户忠诚度

    SEO优化的核心是忠诚度还是用户体验?首先我要给SEO用户体验这个词加个双引号,因为这是个概念模糊的一个词,甚至我们所理解的SEO用户体验这个词并不是真正的SEO用户体验,而是那些善于做SEO营销的人
    互联网创业:当今创业的不二之选

    互联网创业:当今创业的不二之选

    互联网的高速发展告诉我们没有事情是亘古不变的,那些自以为不会随时间而变的传统行业正在不断的被互联网冲击、占领、替代。这让我想到了万物的新陈代谢,发展的时代将会不断有胜利者涌出,互联网的发展给了我们机会
    刘永好:新希望利润比小米高 但估值低太多

    刘永好:新希望利润比小米高 但估值低太多

    新希望集团创始人、董事长刘永好  6月20日2015青岛中国财富论坛财富增长与实体经济分论坛上,新希望集团创始人、董事长刘永好表示:今天大家并不看你有多少工厂,有多少人,有多少销售,有多少利润,因为我
    浅析医疗行业搜索现状

    浅析医疗行业搜索现状

    医疗行业是个比较大的行业,对于网络方面,基本上所有的医疗重点都是抓在了搜索上面。医疗行业为搜索引擎业绩占了很大的份额,因为这种行业是比较舍得花钱的。但是羊毛出到羊身上,所以发现看病越来越贵了。下面细讲
    寻找免费的午餐 创业初期的各种省钱方法

    寻找免费的午餐 创业初期的各种省钱方法

    开源节流不仅是创业初期的经营要素,无论你公司今后的市值做到多大,省钱永远是没有错的。  网上有很多宏观的文章,宏观的东西我不多费口舌,乐蕃我比较喜欢实在的东西。  下面我就来和大家分享一下在创业初期有
    蜜芽宝贝宣布与早教连锁红黄蓝组建合资公司

    蜜芽宝贝宣布与早教连锁红黄蓝组建合资公司

    DoNews 4月21日消息(记者 向霜)进口母婴电商平台蜜芽宝贝宣布与儿童教育品牌红黄蓝教育机构组建合资公司,通过红黄蓝在全国300多个城市的1000多家线下园来拓展线下渠道,蜜芽宝贝和红黄蓝创始人
    只有1000家客户的公司也能上市 秘诀是赢得大客户

    只有1000家客户的公司也能上市 秘诀是赢得大客户

    左凌烨喜欢看电影和制作遥控模型。一次经纬内部聚会,他说如果自己不做投资,可能会去研究天体物理或者做建筑师。  大概至今还没顾得上华丽转身,所以这次左凌烨仍以主导投资过猎聘网、土巴兔、找钢网、猎豹、北森
    马云:公司最难过的关是创始人的境界

    马云:公司最难过的关是创始人的境界

    文/马云  绝大部分公司创始者天性害怕失去对公司的控制权,这无可厚非,因为各种不安全感总是围绕着创业者,对未来的不安全感是他们成功的主要因素之一。尤其是越成功的创始老板会越来越有莫名的担心。  创始人
你是怎么知道非凡网赚网的?
  •   
  • 联系QQ 邮箱:976382653@qq.com 微信:976382653
    在线留言
    发布软文
    广告自助购
    文章调用
    常见问题
    保存到桌面