[站长帮] 宝塔的PHP环境下,服务器大量php-cgi.exe进程导致CPU占用100%
作者:蓝扬日期:2019-05-27 分类:站长帮
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进程的总数量,占用内存也减小了,反应速度比以前快了不少,至少调整到多少,可根据您的站点访问量来决定。
==============================================================
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
下载如下工具,安装后,如下图。
添加
PHP_FCGI_MAX_REQUESTS=10000
添加后,不用重启IIS,就能在进程管理器看到效果。
似乎并没有达到设定的值,不过浏览网站明显感觉到性能的提示。
内存占用~~其实微软的系统有一个不好处在于,服务器的内存占用,要尽量让服务去使用,而并不像客户端使用一样,留足够多的内存给用户的应用程序。
我在这里要提醒大家注意的是以下两个参数值得设置:
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进程的总数量,占用内存也减小了,反应速度比以前快了不少,至少调整到多少,可根据您的站点访问量来决定。
猜你还喜欢
- 2019-08-12 [黑客软件] 御剑RDP爆破工具_暴力批量破解服务器
- 2019-07-13 [玩软件] 宝塔安装第三方SSL证书教程记录以及宝塔“Let’s Encrypt”安装失败
- 2019-07-12 [站长学堂] 宝塔面板 安装ssl证书
- 2019-06-03 [VPS管理] 新手除了宝塔的另一个选择
- 2019-06-02 [服务器教程] ZBench: 服务器一键测试脚本 / 自带结果导出
- 2019-04-07 [棋牌源码] 颂游棋牌各种教程各种端带服务器,一锅鲜大聚会
- 2018-10-21 [操作系统]《红帽企业Linux 5.9服务器版》(Red Hat Enterprise Linux 5.9 Server)x86/64[光盘镜像]
- 2018-08-20 [教程] 商梦网校VPS服务器管理教程
- 2018-07-10 [玩网络] 服务器防火墙规则及进出站端口设置
- 2018-04-07 [QQ专区]qq服务器拒绝了您发送离线文件解决方法
- 2018-03-04 [服务器类]iis6.0安装包
- 最新文章
- 热门文章
- 热评文章
[搞笑牛派脸谱] 猫小乐阿衰“低调敲锣”真套路!金乘五“私人歌迷会”嗨翻了
[文体健康] 达摩易筋经绝技学习视频
[涨姿势] 超市门口回收小票的人,半天收入能超千元?背后的猫腻你知道吗?
[开车] 为什么在高速上行驶不要开内循环?交警说出原因,车主:很吓人!
[网文] 世界名桥港珠澳大桥已成摆设桥上几乎见不到车原因很现实
[历史图文] 一组真实的老照片, 带你走进那个不一样的民国! 旗袍美女风姿绰约
[历史图文] 宣统年间的珍贵照片,见证大清最后的模样
[创业致富] 快乐致富创业教程系列 《奇谋智富必成方案》
[维修系列资源] 电焊工技术视频教程大全气割气焊氩弧焊讲解培训课件焊接工艺技能
[安卓游戏] 剑魂榜无敌秒杀无限技能修改版
[稀有资源] 600G稀有资源爆炸性大合集,PR社全集、韩国嫩模、当红主播……你值得拥有!VIP资源[注意!资源已失效]
[精品资源] Hardcore.Parody美国大片成人版合集包 [44V 55GB]
[VIP资源] 高清原版无水印!云上会所酒吧合集300部,高清偷拍,国内罕见!
[福利资源] 极品网红少女押尾猫 – 建筑工地露出&自慰 [135P+1V/222MB]
[黑客门] FC2-1031642 abp601part1 园田みおん 无修正 无码流出 01
[套图] 押尾猫 - 主人该起床啦 [39P 87MB]
[强荐] 推特网红Qinweiyingjie写真视频 [MP4/292MB]
[VIP资源] UraLesbian日本唯美女同系列合集包 [333V 195GB]
[福利] 人气网红周妍希现场拍摄视频原片素材集5[MP4/13V/6.2G]
[超清嫩逼MOTE] 一字马女神!解锁各种姿势!国模蒂蒂大尺度全方位展示,值得收藏
[稀有资源] 600G稀有资源爆炸性大合集,PR社全集、韩国嫩模、当红主播……你值得拥有!VIP资源[注意!资源已失效]
[精品资源] 国内稀有美容院女性私密护理内部按摩视频
[美女] Femjoy 艾丽莎 海滩岩石 [BT/38P] +其他12个资源(含视频)
[福利] 《2018年全年裸贷裸条档案,终极大合集》速度下载,严查必删,200V合集总时长超3小时[9.74G]
[VIP资源] 熊孩子幼狼系列大合集 400集35G[已修复BT]
[音乐] 车载音乐mp3下载 车载导航mtv超经典歌曲连播 精选80年代经典mp3全集
[云资源] 美女主播憋3小时任务全程视频
[VIP资源] 高清原版无水印!云上会所酒吧合集300部,高清偷拍,国内罕见!
[超清嫩逼MOTE] 一字马女神!解锁各种姿势!国模蒂蒂大尺度全方位展示,值得收藏
[美女] [VIP资源] 欧美美女写真分享 181024 [126项资源]
- 最新评论
- 热门tag
取消回复欢迎 你 发表评论: