IIS+PHP访问量大时内存爆满等性能问题解决方案
如今还是有许多人在用老掉牙的 IIS6 + PHP。本文解决方法适用于使用 FastCGI 运行 PHP 的用户。
问题原因:
你可以试一试,你在 VPS 上用 IIS6 安装 FastCGI 跑 PHP,并安装 WordPress。
然后你多发表一些文章,随后一直不停地按 F5,不到一分钟,你的内存就差不多爆到 85% 左右了,此时VPS开始大幅度读写虚拟内存,磁盘性能又开始下降。
最终 VPS 死机。
解决方案:
很多 VPS 提供商提供的一件环境配置包或网上现有的教程,都没有针对性能进行优化。
所以我们只需要给 FastCGI 加以限制参数,就可以解决问题。(就像在 Apache 的 httpd.conf 中的配置一样)
- 首先,终止 IIS 的运行。
- 然后访问这个目录:C:\WINDOWS\system32\inetsrv
- 打开 fcgiext.ini。(建议不要使用记事本编辑,可以用 Notepad++)
- 找到:
[Type]
php=PHP
[PHP]
ExePath=XXXXXXX - 在下面加入以下配置:
;设置 php-cgi.exe 最大的进程数
maxInstances=30
;设置 php-cgi 每个进程处理多少个请求后释放
InstanceMaxRequests=300
;设置 php-cgi 空闲后多少时间内退出释放资源(单位:秒)
IdleTimeout=100
最后只要重新启动一下 IIS 即可生效。
备注:maxInstances 的数值可以根据服务器的实际内存来调整。