进程里phpcgi是做什么用的占用内存很高怎么解决?-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

进程里phpcgi是做什么用的占用内存很高怎么解决?

killer2014 2014-08-02 16:09:37 17827
今天网站打不开了,进到服务器内启动任务管理器一看有两个php-cgi进程把内存都占光了
php-cgi是做什么用的?占用内存很高怎么解决?


分享到
取消 提交回答
全部回答(4)
  • kung-yeh
    2014-08-03 23:47:23
    Re进程里phpcgi是做什么用的占用内存很高怎么解决?
    这么多phpcgi进程,你这个服务器上绑了不少网站吧
    0 0
  • 梦丫头
    2014-08-02 22:37:56
    修改mysql的临时文件夹c:/windows/temp位置,并限制php-cgi进程数量看看

    -------------------------

    在这个目录下:
    C:\WINDOWS\system32\inetsrv
    有个fcgiext.ini文件
    C:\WINDOWS\system32\inetsrv\fcgiext.ini
    打开,在这个文件的最后几行默认是下面的配置:
    ------------------------------------------------------------------------------
    [PHP]
    ExePath=C:\Program Files\wimp\php\php-cgi.exe
    InstanceMaxRequests=10000
    EnvironmentVars=PHP_FCGI_MAX_REQUESTS:10000
    RequestTimeout=50000
    ActivityTimeout=90000

    ------------------------------------------------------------------------------
    修改如下:
    ------------------------------------------------------------------------------
    [PHP]
    ExePath=C:\Program Files\wimp\php\php-cgi.exe
    InstanceMaxRequests=200
    EnvironmentVars=PHP_FCGI_MAX_REQUESTS:1000
    RequestTimeout=30
    ActivityTimeout=30

    0 0
  • zhedianshi
    2014-08-02 16:48:41

    ExePath=C:\PHP\php-cgi.exe
    InstanceMaxRequests=10000
    ActivityTimeout=900
    RequestTimeout=500

    InstanceMaxRequests=改小
    ExePath=C:\PHP\php-cgi.exe
    InstanceMaxRequests=300
    ActivityTimeout=900
    RequestTimeout=500
    你先试试这个办法:
    在C:\WINDOWS\system32\inetsrv\fcgiext.ini 文件中设定php-cgi进程相关参数

    InstanceMaxRequests=的值改小
    建议
    512M 内存的改InstanceMaxRequests=200
    1G 内存的改InstanceMaxRequests=300
    2G 内存的改InstanceMaxRequests=500然后重启iis


    重装php版本进行测试不太靠谱吧,尤其如果你之前是正常的,没进行过任何情况突然变这样的话


    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操作系统,2G内存,一个php-cgi.exe程序占用7-25M内存,我把maxInstances值调为300,减少了php-cgi.exe进程的总数量,占用内存也减小了,反应速度比以前快了不少,至少调整到多少,可根据您的站点访问量来决定。
    0 0
  • killer2014
    2014-08-02 16:18:22
    Re进程里phpcgi是做什么用的占用内存很高怎么解决?
    提了售后工单,售后工单回复是附件中的应用导致CPU异常,此问题只能建议自己换PHP的其他版本再进行测试下
    大家觉得是这个原因吗?

    -------------------------

    Re进程里phpcgi是做什么用的占用内存很高怎么解决?

    这么多php-cgi进程把内存全占光了,要崩溃了
    0 0
添加回答
云计算
使用钉钉扫一扫加入圈子
+ 订阅

时时分享云计算技术内容,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。

推荐文章