青草久久影院-青草久久伊人-青草久久久-青草久久精品亚洲综合专区-SM双性精跪趴灌憋尿调教H-SM脚奴调教丨踩踏贱奴

17站長網(wǎng)

17站長網(wǎng) 首頁 網(wǎng)站 服務器 查看內(nèi)容

服務器大量php-cgi.exe進程導致CPU占用100%的解決方法

2022-10-25 09:04| 查看: 2482 |來源: 互聯(lián)網(wǎng)

 windows 2003+IIS6中優(yōu)化fastcgi配置文件fcgiext.ini,減少php-cgi.exe進程數(shù)量和所占內(nèi)存大小 本來聽說fastcgi比isapi好就在服務器中裝上了,配置環(huán)境為windows 2003+IIS6+fastcgi(FCGI)+PHP5.2.17,經(jīng)過與

 windows 2003+IIS6中優(yōu)化fastcgi配置文件fcgiext.ini,減少php-cgi.exe進程數(shù)量和所占內(nèi)存大小

本來聽說fastcgi比isapi好就在服務器中裝上了,配置環(huán)境為windows 2003+IIS6+fastcgi(FCGI)+PHP5.2.17,經(jīng)過與很長一段時間觀察,發(fā)現(xiàn)工作在FastCGI模式下的PHP會占用越來越多的內(nèi)存,訪問量稍微多點php-cgi進程就多了N個,同樣情況下能比原來用isapi模式的時候多出幾百M,我的服務器內(nèi)存只有2G傷不起啊。

我在網(wǎng)上搜索了一下,發(fā)現(xiàn)還有不少人面臨同樣的問題。來自PHP官方的一個比較正式的解釋是:php-cgi進程并沒有內(nèi)存泄漏,php-cgi會在每個請求結(jié)束的時候回收腳本使用的全部內(nèi)存,但是并不會釋放給操作系統(tǒng),而是繼續(xù)持有以應對下一次PHP請求。這樣做大概是為了減少內(nèi)存碎片化或者解決從系統(tǒng)申請內(nèi)存之后又釋放回操作系統(tǒng)所需要的時間不可控問題。可是如果偶然一次PHP請求使用了諸如ftp或者zlib這樣的大內(nèi)存操作,那么將導致一大塊系統(tǒng)內(nèi)存被php-cgi持續(xù)占有,不能被利用。
解決這個問題的辦法是在web服務器配置中優(yōu)化fastcgi配置文件參數(shù)。

在C:\WINDOWS\system32\inetsrv\fcgiext.ini 文件中可以設定php-cgi進程相關參數(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  指定了每個實例可以處理的最大請求數(shù),
maxInstances 指定可以啟動的最大實例數(shù)目,
EnvironmentVars 創(chuàng)建了一個環(huán)境變量 PHP_FCGI_MAX_REQUESTS ,默認值設為10000,
requestTimeout  指定了請求的超時時間為600秒,
activityTimeout  指定了活動會話超時時間為900秒。
一下是建議值:
maxInstances=
把這個值改小

建議

512M 內(nèi)存的改maxInstances=50 1G 內(nèi)存的改maxInstances=80 2G 內(nèi)存的改maxInstances=140

再修改
InstanceMaxRequests=
把這個值改小

建議

512M 內(nèi)存的改InstanceMaxRequests=200 1G 內(nèi)存的改InstanceMaxRequests=300 2G 內(nèi)存的改InstanceMaxRequests=500

改完, 重啟IIS。

instanceMaxRequests  PHP_FCGI_MAX_REQUESTS  這兩個參數(shù)決定了一個php-cgi進程被創(chuàng)建出來之后,最多接受的PHP請求數(shù),在lighttpd中默認配置是10000。也就是說這個php-cgi進程每接受10000次PHP請求后會終止,釋放所有內(nèi)存,并重新被管理進程啟動。如果把它降低,比如改成100,那么php-cgi重啟的周期會大大縮短,偶然的高內(nèi)存操作造成的問題影響時間也會縮短。
maxInstances 這個參數(shù)指定可以啟動的最大實例數(shù)目,即php-cgi.exe進程的數(shù)目。如果把它降低,比如改成100,那么在任務管理器的進程中最多只有php-cgi.exe進程,php-cgi.exe所占用的總內(nèi)存將大大減少。
我現(xiàn)在用的服務器為windows 2003操作系統(tǒng),4G內(nèi)存,一個php-cgi.exe程序占用7-25M內(nèi)存,我把maxInstances值調(diào)為300,減少了php-cgi.exe進程的總數(shù)量,占用內(nèi)存也減小了,反應速度比以前快了不少,至少調(diào)整到多少,可根據(jù)您的站點訪問量來決定。

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

在WIN2008的IIS7上使用FASTCGI調(diào)用PHP-CGI.EXE,默認只有4個進程,這樣對于大流量的網(wǎng)站為說,進程數(shù)不足帶來的進程排隊現(xiàn)象十分嚴重,解決方案如下。

32位系統(tǒng) http://www.iis.net/Downloads/files/AdminPack/TP2/AdminPack_x86.msi
64位系統(tǒng) http://www.iis.net/Downloads/files/AdminPack/TP2/AdminPack_amd64.msi

下載如下工具,安裝后,如下圖。

修改WIN2008下IIS調(diào)用FASTCGI進程數(shù)! - 小三子 - 怪叟博客
修改WIN2008下IIS調(diào)用FASTCGI進程數(shù)! - 小三子 - 怪叟博客

添加

PHP_FCGI_MAX_REQUESTS = 10000

添加后,不用重啟IIS,就能在進程管理器看到效果。

修改WIN2008下IIS調(diào)用FASTCGI進程數(shù)! - 小三子 - 怪叟博客

似乎并沒有達到設定的值,不過瀏覽網(wǎng)站明顯感覺到性能的提示。

修改WIN2008下IIS調(diào)用FASTCGI進程數(shù)! - 小三子 - 怪叟博客

內(nèi)存占用~~ 其實微軟的系統(tǒng)有一個不好處在于, 服務器的內(nèi)存占用,要盡量讓服務去使用,而并不像客戶端使用一樣,留足夠多的內(nèi)存給用戶的應用程序。

我在這里要提醒大家注意的是以下兩個參數(shù)值得設置:

InstanceMaxRequests:fastcgi進程(php-fcgi.exe)能處理的最大請求數(shù),超過了就要回收,默認是200

PHP_FCGI_MAX_REQUESTS:php自身控制的最大請求數(shù),默認是500

既然要用fastcgi去運行cgi,那肯定是不想php自身去限制最大請求數(shù)!!

所以,一定要保證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.

服務器php-cgi.exe進程過多,導致CPU占用100%的解決方法

使用iis服務器中經(jīng)常會出現(xiàn)php-cgi.exe進程過多,導致CPU占用100%,最終造成網(wǎng)站運行過慢甚至卡死的情況,重啟iis會好一會,過一段時間久出現(xiàn)這種情況,為什么會出現(xiàn)這種情況呢,應該怎么解決呢,開始的時候我一直手動結(jié)束php-cgi程序,雖然可以臨時解決問題,但是不是長久之計,我百度了下,出現(xiàn)該問題一般為程序方面問題,如程序采用fastcgi方式運行PHP,而程序設置的StartProcesses又偏大,如6甚至更大。下面是我整理的對php-cgi.ext過多引起服務器cup%的解決方法,希望對大家有幫助;大多數(shù)情況是發(fā)生在第四項上;

解決參考:

1.檢查系統(tǒng)盤空間。查看系統(tǒng)臨時文件是否過多,mysql數(shù)據(jù)庫的臨時文件默認存到了c:/windows/temp,導致累積了幾萬甚至上百萬的小文件,壓垮系統(tǒng)盤。

del *.* 刪除所有文件

如果上面的命令不夠強悍,可以使用下面的代碼

del /f /q /s tmp\*.*

2.PHP是一種廣泛使用的動態(tài)腳本語言,不過在IIS中并沒有內(nèi)置對PHP語言的支持,因此如果需要使用PHP,必須自行安裝。PHP可以安裝為CGI模式或者ISAPI模式,由于ISAPI模式具有更高的性能,因此我建議大家使用ISAPI模式。

3.如能修改程序,建議將程序配置文件中的StartProcesses值縮到2,看是否改善。

4.看是否服務器有問題攻擊現(xiàn)象。

本文最后更新于 2022-10-25 09:04,某些文章具有時效性,若有錯誤或已失效,請在網(wǎng)站留言或聯(lián)系站長:[email protected]
·END·
站長網(wǎng)微信號:w17tui,關注站長、創(chuàng)業(yè)、關注互聯(lián)網(wǎng)人 - 互聯(lián)網(wǎng)創(chuàng)業(yè)者營銷服務中心

免責聲明:本站部分文章和圖片均來自用戶投稿和網(wǎng)絡收集,旨在傳播知識,文章和圖片版權歸原作者及原出處所有,僅供學習與參考,請勿用于商業(yè)用途,如果損害了您的權利,請聯(lián)系我們及時修正或刪除。謝謝!

17站長網(wǎng)微信二維碼

始終以前瞻性的眼光聚焦站長、創(chuàng)業(yè)、互聯(lián)網(wǎng)等領域,為您提供最新最全的互聯(lián)網(wǎng)資訊,幫助站長轉(zhuǎn)型升級,為互聯(lián)網(wǎng)創(chuàng)業(yè)者提供更加優(yōu)質(zhì)的創(chuàng)業(yè)信息和品牌營銷服務,與站長一起進步!讓互聯(lián)網(wǎng)創(chuàng)業(yè)者不再孤獨!

掃一掃,關注站長網(wǎng)微信

大家都在看

熱門排行

    最近更新

      返回頂部
      主站蜘蛛池模板: 国产女合集小岁9三部 | 亚洲一区免费观看 | 男女疯狂一边摸一边做羞羞视频 | 国产AV精品国语对白国产 | 人妻少妇久久久久久97人妻 | 熟女人妻AV五十路六十路 | 野花韩国高清完整版在线观看5 | 99久久久免费精品免费 | 免费黄色网址在线观看 | 九九99热久久999精品 | 日本粉嫩学生毛绒绒 | 扒开黑女人p大荫蒂老女人 扒开粉嫩的小缝末成年小美女 | 亚洲男同tv | 亚洲乱码AV久久久久久久 | 最近中文字幕2019国语4 | 1000部做羞羞事禁片免费视频网站 | 日韩AV片无码一区二区三区不卡 | 久久亚洲高清观看 | 大胸女晃奶动态图 | 国产午夜亚洲精品一区 | 最近中文字幕在线中文高清版 | 国自产拍 高清精品 | 亚洲熟少妇在线播放999 | J午夜精品久久久久久毛片 jzz大全18 | 亚洲A片不卡无码久久尤物 亚洲a免费 | YIN荡的老师系列第6部分视频 | 乱h好大噗嗤噗嗤烂了 | 风流少妇BBWBBW69视频 | 亚洲视频国产在线精品 | 国产精品国产三级国产专区53 | 99视频精品全部免费 在线 | 国内精品久久人妻无码HD浪潮 | 久久9精品区-无套内射无码 | 偷窥 亚洲 色 国产 日韩 | 成人午夜精品久久久久久久秋霞 | yellow在线观看免费直播 | 欧美群交XXXCOM | 国产成人综合网在线观看 | 三级色视频 | 天天躁人人躁人人躁狂躁 | 亚洲女人毛片 |