php启用Opcache进行性能调优

     php5.5以上版本已经内置了zend OpCache。通过配置zend opCache模块,将预编译的php字节码加载到共存内存中,省去了每次加载php文件和编译php代码的开销,可以极大提高php性能。

    opcache模块常用配置如下

#配置响应时间
sed -i 's/max_execution_time = 30/max_execution_time = 0/' /usr/local/php/lib/php.ini

#配置post大小
sed -i 's/post_max_size = 8M/post_max_size = 150M/' /usr/local/php/lib/php.ini

#配置上传文件大小
sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 100M/' /usr/local/php/lib/php.ini

#设定错误输出级别
sed -i 's:error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT:error_reporting = E_ALL:' /usr/local/php/lib/php.ini

#启用php性能优化

#启用Zend Optimizer优化开关
sed -i 's:;opcache.enable=0:opcache.enable=1:' /usr/local/php/lib/php.ini

#共享内存的大小, 总共能够存储多少预编译的 PHP 代码(单位:MB),推荐128M
sed -i 's:;opcache.memory_consumption=64:opcache.memory_consumption=128:' /usr/local/php/lib/php.ini

#暂存池中字符串的占内存总量.(单位:MB), 推荐 8
sed -i 's:;opcache.interned_strings_buffer=4:opcache.interned_strings_buffer=8:' /usr/local/php/lib/php.ini

#最大缓存的文件数目 200  到 100000 之间,推荐 4000
sed -i 's:;opcache.max_accelerated_files=2000:opcache.max_accelerated_files=4000:' /usr/local/php/lib/php.ini

#;内存“浪费”达到此值对应的百分比,就会发起一个重启调度.
sed -i 's:;opcache.max_wasted_percentage=5:opcache.max_wasted_percentage=5:' /usr/local/php/lib/php.ini

#2s检查一次文件更新 注意:0是一直检查不是关闭,推荐 60
sed -i 's:;opcache.revalidate_freq=2:opcache.revalidate_freq=2:' /usr/local/php/lib/php.ini

#是否保存文件/函数的注释   如果apigen、Doctrine、 ZF2、 PHPUnit需要文件注释,推荐 0
sed -i 's:;opcache.save_comments=1:opcache.save_comments=0:' /usr/local/php/lib/php.ini


#打开快速关闭, 打开这个在PHP Request Shutdown的时候会收内存的速度会提高
sed -i 's:;opcache.fast_shutdown=0:opcache.fast_shutdown=1:' /usr/local/php/lib/php.ini

    opCache其他一些配置说明

#是否在CLI(即命令行时)启用opcache
;opcache.enable_cli=0
#如果置为1,则将当前路径加入到文件key中,以避免可能产生的同文件名的文件key冲突
;opcache.use_cwd=1
#开启文件时间戳验证
;opcache.validate_timestamps=1#
#允许或禁止在 include_path 中进行文件搜索的优化
;opcache.revalidate_path=0
#允许覆盖文件存在(file_exists等)的优化特性
;opcache.enable_file_override=0
#定义启动多少个优化过程
;opcache.optimization_level=0xffffffff
#启用此Hack可以暂时性的解决”can’t redeclare class”错误.
;opcache.inherited_hack=1
#启用此Hack可以暂时性的解决”can’t redeclare class”错误.
;opcache.dups_fix=0
#设置不缓存的黑名单
;opcache.blacklist_filename=
#通过文件大小屏除大文件的缓存.默认情况下所有的文件都会被缓存
;opcache.max_file_size=0
#由于计算校验值有损性能,这个指令应当紧紧在开发调试的时候开启
.;opcache.consistency_checks=0
#从缓存不被访问后,等待多久后(单位为秒)调度重启
;opcache.force_restart_timeout=180
#错误日志文件名.留空表示使用标准错误输出(stderr)
;opcache.error_log=
#将错误信息写入到服务器(Apache等)日志
;opcache.log_verbosity_level=1
#内存共享的首选后台.留空则是让系统选择
;opcache.preferred_memory_model=
#防止共享内存在脚本执行期间被意外写入, 仅用于内部调试.
;opcache.protect_memory=0
#仅允许路径是以指定字符串开始的 PHP 脚本调用 OPcache API 函数。      默认值为空字符串 "",表示不做限制。
;opcache.restrict_api=
#在 Windows 平台上共享内存段的基地址。      所有的 PHP 进程都将共享内存映射到同样的地址空间。      使用此配置指令避免“无法重新附加到基地址”的错误
;opcache.mmap_base=

;opcache.file_cache=

;opcache.file_cache_only=0

;opcache.file_cache_consistency_checks=1

;opcache.file_cache_fallback=1

;opcache.huge_code_pages=1

        php启用opcache扩展

  • 编译时php时添加–-enable-opcache

             默认opcache加速是关闭的,需要配置为启用。

  • 在php.ini中配置启用

       extension=opcache.so

  •  配置opcache参数

    #启用Zend Optimizer优化开关
    opcache.enable=1
    
    #共享内存的大小, 总共能够存储多少预编译的 PHP 代码(单位:MB),推荐128M
    opcache.memory_consumption=128
    
    #暂存池中字符串的占内存总量.(单位:MB), 推荐 8
    opcache.interned_strings_buffer=8
    
    #最大缓存的文件数目 200  到 100000 之间,推荐 4000
    opcache.max_accelerated_files=4000
    
    #;内存“浪费”达到此值对应的百分比,就会发起一个重启调度.
    opcache.max_wasted_percentage=5
    
    #2s检查一次文件更新 注意:0是一直检查不是关闭,推荐 60
    opcache.revalidate_freq=2
    
    #是否保存文件/函数的注释   如果apigen、Doctrine、 ZF2、 PHPUnit需要文件注释,推荐 0
    opcache.save_comments=0
    
    #打开快速关闭, 打开这个在PHP Request Shutdown的时候会收内存的速度会提高
    opcache.fast_shutdown=1

       参考资料

  • http://php.net/manual/zh/opcache.configuration.php
 
  

你可能感兴趣的:(php)