win2008服務器,fastCGI完美設置教程


在WIN2008的IIS7上使用FASTCGI調用PHP-CGI.EXE,默認只有4個進程這樣對於大流量的網站為說進程數不足帶來的進程排隊現象十分嚴重,解決方案如下
32位系統 http://www.iis.net/Downloads/files/AdminPack/TP2/AdminPack_x86.msi
64位系統 http://www.iis.net/Downloads/files/AdminPack/TP2/AdminPack_amd64.msi
下載如下工具,安裝后,如下圖
修改WIN2008下IIS調用FASTCGI進程數! - 小三子 - 怪叟博客
修改WIN2008下IIS調用FASTCGI進程數! - 小三子 - 怪叟博客
添加
PHP_FCGI_MAX_REQUESTS = 10000
添加后,不用重啟IIS,就能在進程管理器看到效果。
修改WIN2008下IIS調用FASTCGI進程數! - 小三子 - 怪叟博客
似乎並沒有達到設定的值,不過瀏覽網站明顯感覺到性能的提示。
修改WIN2008下IIS調用FASTCGI進程數! - 小三子 - 怪叟博客
內存占用~~ 其實微軟的系統有一個不好處在於, 服務器的內存占用,要盡量讓服務去使用,而並不像客戶端使用一樣,留足夠多的內存給用戶的應用程序。
我在這里要提醒大家注意的是以下兩個參數值得設置:
InstanceMaxRequests:fastcgi進程(php-fcgi.exe)能處理的最大請求數,超過了就要回收,默認是200
PHP_FCGI_MAX_REQUESTS:php自身控制的最大請求數,默認是500
既然要用fastcgi去運行cgi,那肯定是不想php自身去限制最大請求數!!
所以,一定要保證InstanceMaxRequests小於 或 等於 PHP_FCGI_MAX_REQUESTS,這樣php自身永遠沒有機會去回收進程。

可以看micorsoft說的:
Make sure that FastCGI always recycles Php-cgi.exe processes before native PHP recycling starts. The configuration property instanceMaxRequests controls the FastCGI process-recycling behavior. This property specifies how many requests FastCGI will process before recycling. PHP also has a similar process-recycling functionality that is controlled by the environment variable PHP_FCGI_MAX_REQUESTS. By setting instanceMaxRequests to a value that is smaller than or equal to PHP_FCGI_MAX_REQUESTS, you can make sure that the native PHP process-recycling logic will never start.
建議
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進程的總數量,占用內存也減小了,反應速度比以前快了不少,至少調整到多少,可根據您的站點訪問量來決定。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM