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需要文件注释,推荐 0opcache.save_comments=0 

#打开快速关闭, 打开这个在PHP Request Shutdown的时候会收内存的速度会提高
opcache.fast_shutdown=1

你可能感兴趣的:(php启用Opcache进行性能调优)