• <span id="ycodp"></span>
    <span id="ycodp"><small id="ycodp"></small></span>
    1. <label id="ycodp"></label>
      <rt id="ycodp"><tr id="ycodp"><strike id="ycodp"></strike></tr></rt>
      <i id="ycodp"><strong id="ycodp"><ul id="ycodp"></ul></strong></i>
    2. 幫助中心

      這里有最新的使用文檔和教程

      < 返回

      服務器大量php-cgi.exe進程,CPU100%的解決

      2023-05-03 10:10 作者:31IDC 閱讀量:1093 所屬分類:Windows系統

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

      出現該問題一般為程序方面問題,如程序采用fastcgi方式運行PHP,而程序設置的StartProcesses又偏大,如6甚至更大。

      解決參考:

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

       

      del *.*   刪除所有文件

       

       

      2.PHP是一種廣泛使用的動態腳本語言,不過在IIS中并沒有內置對PHP語言的支持,因此如果需要使用PHP,必須自行安裝。PHP可以安裝為CGI模式或者ISAPI模式,由于ISAPI模式具有更高的性能,因此我建議大家使用ISAPI模式。
      3.如能修改程序,建議將程序配置文件中的StartProcesses值縮到2,看是否改善。
      4.看是否服務器有問題攻擊現象。

       

      如何解決呢?

       

      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進程的總數量,占用內存也減小了,反應速度比以前快了不少,至少調整到多少,可根據您的站點訪問量來決定。

      31IDC - 12 年深耕海外 IDC 高端資源

      主站蜘蛛池模板: 久久大香线蕉综合爱| 狠狠色婷婷久久综合频道日韩 | 久久精品国产91久久综合麻豆自制| 色综合99久久久无码国产精品| 亚洲色欲色欲综合网站| 色婷婷久久综合中文久久蜜桃av | 久久综合久久精品| 精品综合久久久久久97| 婷婷久久久五月综合色| 综合国产精品第一页| 亚洲成AV人综合在线观看| 婷婷久久综合九色综合九七| 伊人久久大香线蕉综合电影| 色综合久久天天影视网| 青青青国产色视频在线观看国产亚洲欧洲国产综合 | 国产综合久久久久久鬼色| 91丁香亚洲综合社区| 国产精品亚洲综合一区在线观看 | 亚洲综合免费视频| 亚洲伊人久久成综合人影院| 久久综合亚洲色HEZYO社区| 婷婷六月久久综合丁香76| 久久婷婷香蕉热狠狠综合| 国产精品亚洲综合专区片高清久久久| 久久精品亚洲综合专区| 精品国产综合成人亚洲区| 色综合久久一区二区三区| 亚洲国产精品综合久久20| 久久无码无码久久综合综合| 国产亚洲综合成人91精品| 狠狠色婷婷丁香综合久久韩国| 国产成人综合一区精品| 97se亚洲国产综合自在线| 久久99国产综合精品| 色综合天天综合给合国产| 亚洲高清中文字幕综合网| 精品综合久久久久久97| 综合偷自拍亚洲乱中文字幕| 天天欲色成人综合网站| 亚洲AV日韩综合一区尤物| 人妻av综合天堂一区|