18720358503 在线客服 人才招聘 返回顶部
企业动态 技术分享 行业动态

iis6中怎样降低php-cgi.exe过程数量and FastCGI+PHP5.3.

2021-04-13分享 "> 对不起,没有下一图集了!">

iis6中怎样降低php-cgi.exe过程数量and FastCGI+PHP5.3.3的配备方式


短视頻,自新闻媒体,达人种草1站服务

FastCGI的提升配备

FastCGI提升配备文档fcgiext.ini,它在%windir%\system32\isrv里。大家将尝试用两种方法开展配备:FastCGI管理方法脚本制作fcgiconfig.js;记事本编写fcgiext.ini。

脚本制作配备FastCGI

开启你的指令行cmd.exe,切换到文件目录 %windir%\system32\isrv。拷贝下面內容,回车实行下列便可进行。请依据必须设定后边的主要参数。

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有关本身的一部分

1、检索extension_dir,去掉前面注解 ,改动成:

1 extension_dir = "c:/php/ext"

2、检索date.timezone,去掉前面注解 ,改动成:

1 date.timezone = "asia/shanghai"

3、检索下面,随后去掉前面的凝视

extension=php_gd2.dll

extension=php_mbstring.dll

extension=php_mysql.dll

这般如此你的PHP基础能够通畅畅通无阻了。至于1些更高級的改动,大家沒有必要科学研究那末深,并不是吗?

windows 2003+IIS6中提升fastcgi配备文档fcgiext.ini,降低php-cgi.exe过程数量和所占运行内存尺寸

原本听闻fastcgi比isapi好就在服务器中装到了,配备自然环境为windows 2003+IIS6+fastcgi(FCGI)+PHP5.2.17,历经与很长1段時间观查,发现工作中在FastCGI方式下的PHP会占有愈来愈多的运行内存,浏览量略微多一点php-cgi过程就多了N个,一样状况下能比原先用isapi方式的情况下多出几百M,我的服务器运行内存仅有2G伤不起啊。

我在网络上检索了1下,发现也有很多人遭遇一样的难题。来自PHP官方的1个较为宣布的解释是:php-cgi过程并沒有运行内存泄露,php-cgi会在每一个恳求完毕的情况下收购脚本制作应用的所有运行内存,可是其实不会释放出来给实际操作系统软件,而是再次持有以解决下1次PHP恳求。这样做大约是以便降低运行内存碎片化或处理从系统软件申请办理运行内存以后又释放出来回实际操作系统软件所必须的時间不能控难题。但是假如不经意1次PHP恳求应用了诸如ftp或zlib这样的大运行内存实际操作,那末将致使1大块系统软件运行内存被php-cgi不断占据,不可以被运用。

处理这个难题的方法是在web服务器配备中提升fastcgi配备文档主要参数。

在C:\WINDOWS\system32\isrv\fcgiext.ini 文档中能够设置php-cgi过程有关主要参数,如:

[Types]

php = PHP

[PHP]

ExePath=C:\php⑸.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 建立了1个自然环境自变量 PHP_FCGI_MAX_REQUESTS ,默认设置值设为10000,

requestTimeout 特定了恳求的请求超时時间为600秒,

activityTimeout 特定了主题活动对话请求超时時间为900秒。

1下是提议值:

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 这两个主要参数决策了1个php-cgi过程被建立出来以后,数最多接纳的PHP恳求数,在ligd中默认设置配备是10000。也便是说这个php-cgi过程每接纳10000次PHP恳求后会停止,释放出来全部运行内存,并再次被管理方法过程起动。假如把它减少,例如改为100,那末php-cgi重新启动的周期会大大减少,不经意的高运行内存实际操作导致的难题危害時间也会减少。

maxInstances 这个主要参数特定能够起动的最大案例数目,即php-cgi.exe过程的数目。假如把它减少,例如改为100,那末在每日任务管理方法器的过程中数最多仅有php-cgi.exe过程,php-cgi.exe所占有的总运行内存将大大降低。

我如今用的服务器为windows 2003实际操作系统软件,4G运行内存,1个php-cgi.exe程序流程占有7⑵5M运行内存,我把maxInstances值调为300,降低了php-cgi.exe过程的总数量,占有运行内存也减小了,反映速率比之前快了很多,最少调剂到是多少,可依据您的站点浏览量来决策。

版权:37路论坛

本文连接详细地址:

欢迎转载,转载时务必注明连接和出处。


"> 对不起,没有下一图集了!">
在线咨询