记一次php.ini配置不合理造成系统加载偏慢问题
php 是一个很不错的脚本语言,以下是说明关于问题的配置部分,以及解决方法
现象
系统使用lls 运行php,基于cgi 模式,使用webpi模式部署,系统的现象是运行越来越慢,通过浏览器看到的php 应用首页请求的TTFB在10多秒,而且对于依赖其他的服务的(比如验证码,session 的更慢)
有问题的配置
- 参考配置(php.ini)
注意此处的关于windows\temp 部分的配置,好多核心都在此处,session,log,upload temp
[WebPIChanges]
error_log=C:\Windows\temp\PHP53_errors.log
upload_tmp_dir=C:\Windows\temp
session.save_path=C:\Windows\temp
cgi.force_redirect=0
cgi.fix_pathinfo=1
fastcgi.impersonate=1
fastcgi.logging=0
max_execution_time=1800
date.timezone=Asia/Brunei
extension_dir="C:\Program Files (x86)\PHP\v5.3\ext\"
问题说明
核心就出在Windows\temp 的配置路径了,因为windows 操作系统好多临时东西都是在此目录的,随着系统运行时间越长此文件夹的临时文件也越多,明显造成了文件读取很慢(同时包含了写入,session,以及upload temp 属于典型的写入操作)而且还有一个问题就是log 文件偏大,也会严重影响系统的加载(写文件操作)
解决方法
修改php.ini 中关于log,session,upload temp 的路径,调整到其他地方,不使用默认的
- 参考配置(当然也可以直接使用iis 的php manager 进行修改)
我自己手工创建了log 以及session,还有upload 的目录
[WebPIChanges]
error_log=C:\php\PHP53_errors.log
upload_tmp_dir=C:\php\temp
session.save_path=C:\session
cgi.force_redirect=0
cgi.fix_pathinfo=1
fastcgi.impersonate=1
fastcgi.logging=0
max_execution_time=1800
date.timezone=Asia/Brunei
extension_dir="C:\Program Files (x86)\PHP\v5.3\ext\"
说明
实际上当时如果使用了windows 的性能监视器,以及其他工具也是可以协助分析的