8090午夜福利理论影视,99九九99九九精彩视频,国产成人免费高清激情视频,国产Av一区二区三区无码野战

loading

Loading

首頁(yè) 綜合布線公司

如何優(yōu)化windows+IIS67環(huán)境下FastCGI配置方法

分類(lèi):綜合布線公司
字?jǐn)?shù): (3599)
閱讀: (12090)
0

windows2003+IIS6如何中優(yōu)化FastCGI配置方法
  FastCGI優(yōu)化配置文件fcgiext.ini,它在%windir%\system32\inetsrv里。我們將嘗試用兩種辦法進(jìn)行配置:FastCGI管理腳本fcgiconfig.js;記事本編輯fcgiext.ini。
  腳本配置FastCGI
  打開(kāi)你的命令行cmd.exe,切換到目錄 %windir%\system32\inetsrv。復(fù)制下面內(nèi)容,回車(chē)執(zhí)行以下即可完成。請(qǐng)根據(jù)需要設(shè)置后面的參數(shù)。
  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
  腳本的含義,分別是:
  設(shè)置應(yīng)用程序池回收。FastCGI進(jìn)程請(qǐng)求數(shù)達(dá)到InstanceMaxRequests數(shù)值5000,應(yīng)用程序池將自動(dòng)回收。默認(rèn)值是1000。
  當(dāng)環(huán)境變量PHP_FCGI_MAX_REQUESTS達(dá)到10000將自動(dòng)回收應(yīng)用程序池。
  RequestTimeout 設(shè)置請(qǐng)求超時(shí)時(shí)間,也就是請(qǐng)求允許的最大時(shí)間,如果FastCGI進(jìn)程請(qǐng)求超過(guò)此設(shè)置將被禁止,值是90秒。
  ActivityTimeout 指定FastCGI進(jìn)程請(qǐng)求的最大活躍時(shí)間,在設(shè)定時(shí)間內(nèi),F(xiàn)astCGI進(jìn)程和IIS沒(méi)有通信,將終止進(jìn)程。默認(rèn)值是70秒。

003.jpg
  注意:腳本命令是全局設(shè)置,針對(duì)服務(wù)器上所有以FastCGI運(yùn)行的PHP網(wǎng)站。因此對(duì)于多站點(diǎn)的虛擬機(jī)來(lái)說(shuō),InstanceMaxRequests設(shè)置成PHP網(wǎng)站數(shù)X500相對(duì)理想。
  500是變數(shù)。如果有10個(gè)網(wǎng)站,那么200X50=5000,類(lèi)推。流量大的服務(wù)器,數(shù)值設(shè)置過(guò)小頻繁回收應(yīng)用程序池,并不是什么明智的做法。——雖然,系統(tǒng)回收了不少資源。
  RequestTimeout數(shù)值過(guò)大,無(wú)疑將讓更多消耗系統(tǒng)資源的請(qǐng)求運(yùn)行;ActivityTimeout設(shè)置為120秒不活動(dòng)就斷開(kāi)好,還是30秒不活動(dòng)就斷開(kāi)好,因人而異。
  復(fù)制粘貼適合懶人
  FastCGI配置文件fcgiext.ini設(shè)置
  InstanceMaxRequests=10000
  EnvironmentVars=PHP_FCGI_MAX_REQUESTS:10000
  RequestTimeout=360
  ActivityTimeout=120
  把上面代碼復(fù)制到fcgiext.ini的末尾,保存就好了。
  PHP5.3.6的優(yōu)化配置
  PHP5.3.6的php.ini配置也分為兩部分:關(guān)于FastCGI的配置;關(guān)于PHP本身的配置。我的PHP5.3.6安裝在C:\PHP。
  PHP.ini關(guān)于FastCGI部分
  fastcgi.impersonate = 1
  cgi.fix_pathinfo=1
  cgi.force_redirect = 0
  PHP.ini關(guān)于自身的部分
  一、搜索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基本可以暢通無(wú)阻了。至于一些更高級(jí)的修改,我們沒(méi)有必要研究那么深,不是嗎?
  windows 2003+IIS6中優(yōu)化fastcgi配置文件fcgiext.ini,減少php-cgi.exe進(jìn)程數(shù)量和所占內(nèi)存大小
  本來(lái)聽(tīng)說(shuō)fastcgi比isapi好就在服務(wù)器中裝上了,配置環(huán)境為windows 2003+IIS6+fastcgi(FCGI)+PHP5.2.17,經(jīng)過(guò)與很長(zhǎng)一段時(shí)間觀察,發(fā)現(xiàn)工作在FastCGI模式下的PHP會(huì)占用越來(lái)越多的內(nèi)存,訪問(wèn)量稍微多點(diǎn)php-cgi進(jìn)程就多了N個(gè),同樣情況下能比原來(lái)用isapi模式的時(shí)候多出幾百M(fèi),我的服務(wù)器內(nèi)存只有2G傷不起啊。
  我在網(wǎng)上搜索了一下,發(fā)現(xiàn)還有不少人面臨同樣的問(wèn)題。來(lái)自PHP官方的一個(gè)比較正式的解釋是:php-cgi進(jìn)程并沒(méi)有內(nèi)存泄漏,php-cgi會(huì)在每個(gè)請(qǐng)求結(jié)束的時(shí)候回收腳本使用的全部?jī)?nèi)存,但是并不會(huì)釋放給操作系統(tǒng),而是繼續(xù)持有以應(yīng)對(duì)下一次PHP請(qǐng)求。這樣做大概是為了減少內(nèi)存碎片化或者解決從系統(tǒng)申請(qǐng)內(nèi)存之后又釋放回操作系統(tǒng)所需要的時(shí)間不可控問(wèn)題??墒侨绻既灰淮蜳HP請(qǐng)求使用了諸如ftp或者zlib這樣的大內(nèi)存操作,那么將導(dǎo)致一大塊系統(tǒng)內(nèi)存被php-cgi持續(xù)占有,不能被利用。
  解決這個(gè)問(wèn)題的辦法是在web服務(wù)器配置中優(yōu)化fastcgi配置文件參數(shù)。
  在C:\WINDOWS\system32\inetsrv\fcgiext.ini 文件中可以設(shè)定php-cgi進(jìn)程相關(guān)參數(shù),如:
  [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 指定了每個(gè)實(shí)例可以處理的最大請(qǐng)求數(shù),
  maxInstances 指定可以啟動(dòng)的最大實(shí)例數(shù)目,
  EnvironmentVars 創(chuàng)建了一個(gè)環(huán)境變量 PHP_FCGI_MAX_REQUESTS ,默認(rèn)值設(shè)為10000,
  requestTimeout 指定了請(qǐng)求的超時(shí)時(shí)間為600秒,
  activityTimeout 指定了活動(dòng)會(huì)話超時(shí)時(shí)間為900秒。
  一下是建議值:
  maxInstances=
  把這個(gè)值改小
  建議
  512M 內(nèi)存的改maxInstances=50
  1G 內(nèi)存的改maxInstances=80
  2G 內(nèi)存的改maxInstances=140
  再修改
  InstanceMaxRequests=
  把這個(gè)值改小
  建議
  512M 內(nèi)存的改InstanceMaxRequests=200
  1G 內(nèi)存的改InstanceMaxRequests=300
  2G 內(nèi)存的改InstanceMaxRequests=500
  改完, 重啟IIS
  instanceMaxRequests PHP_FCGI_MAX_REQUESTS 這兩個(gè)參數(shù)決定了一個(gè)php-cgi進(jìn)程被創(chuàng)建出來(lái)之后,最多接受的PHP請(qǐng)求數(shù),在lighttpd中默認(rèn)配置是10000。也就是說(shuō)這個(gè)php-cgi進(jìn)程每接受10000次PHP請(qǐng)求后會(huì)終止,釋放所有內(nèi)存,并重新被管理進(jìn)程啟動(dòng)。如果把它降低,比如改成100,那么php-cgi重啟的周期會(huì)大大縮短,偶然的高內(nèi)存操作造成的問(wèn)題影響時(shí)間也會(huì)縮短。
  maxInstances 這個(gè)參數(shù)指定可以啟動(dòng)的最大實(shí)例數(shù)目,即php-cgi.exe進(jìn)程的數(shù)目。如果把它降低,比如改成100,那么在任務(wù)管理器的進(jìn)程中最多只有php-cgi.exe進(jìn)程,php-cgi.exe所占用的總內(nèi)存將大大減少。
  我現(xiàn)在用的服務(wù)器為windows 2003操作系統(tǒng),4G內(nèi)存,一個(gè)php-cgi.exe程序占用7-25M內(nèi)存,我把maxInstances值調(diào)為300,減少了php-cgi.exe進(jìn)程的總數(shù)量,占用內(nèi)存也減小了,反應(yīng)速度比以前快了不少,至少調(diào)整到多少,可根據(jù)您的站點(diǎn)訪問(wèn)量來(lái)決定。

本文發(fā)布于2016年03月26日00:01,已經(jīng)過(guò)了3327天,若內(nèi)容或圖片失效,請(qǐng)留言反饋

轉(zhuǎn)載請(qǐng)注明出處: 網(wǎng)際網(wǎng)

本文的鏈接地址: http://news.rovide8.cn/buxian/2572.html

評(píng)論列表:
評(píng)論本文(0)
empty

暫無(wú)評(píng)論