• opcache运行时配置参数详解


    PHP的opcode缓存又出 了新成员(说新不新,也有一段日子了),那就是opcache。新浪微博等都在使用,惠新宸老师强力推荐。本人最近根据官网地址 (http://www.php.net/manual/zh/book.opcache.php)整理了一下,其安装非常简单,5.5.0 后将自动在php内核中,不必单独安装,之前的版本的安装也同其它php扩展一样,源码地址http://pecl.php.net/package/ZendOpcache,就不赘述了。


    那么在安装后如何使用并配置opcache,使之能更好地为我们服务呢?整理了一下其在php.ini中各参数的使用说明,供大家参考,有一些不太懂的,就留空了,还请高手赐教。


    名字 默认 可修改范围 含义
    opcache.enable "1" PHP_INI_ALL 是否启用opcache
    opcache.enable_cli "0" PHP_INI_SYSTEM 是否在CLI(即命令行时)启用opcache
    opcache.memory_consumption "64" PHP_INI_SYSTEM 为opcache分配多少共享内存,单位M
    opcache.interned_strings_buffer "4" PHP_INI_SYSTEM   opcache.max_accelerated_files "2000" PHP_INI_SYSTEM

    最大缓存的文件数目。

    实际上这个值会使用第一个大于你配置的数字的下列素数

    { 223, 463, 983, 1979, 3907, 7963, 16229, 32531, 65407, 130987 },

    如你将该值指定为400,则实际上该值为463.

    opcache.max_wasted_percentage "5" PHP_INI_SYSTEM  
    opcache.use_cwd "1" PHP_INI_SYSTEM

    如果置为1,则将当前路径加入到文件key中,

    以避免可能产生的同文件名的文件key冲突

    opcache.validate_timestamps "1" PHP_INI_ALL

    如果置为1,则OPCACHE会自动检测文件的时间戳

    (检测周期为revalidate_freq),

    并根据文件的时间戳来更新opcode,如果置为0,

    则只能手动去重启opcache或

    重启webserver以使更新后的php文件生效

    opcache.revalidate_freq "2" PHP_INI_ALL

    opcache自动检测文件是否更新的周期,单位秒。

    如果是0,则每次请求时opcache都要进行检测。

    当validate_timestamps为0时,本指令无效。

    opcache.revalidate_path "0" PHP_INI_ALL  
    opcache.save_comments "1" PHP_INI_SYSTEM 是否保存文件中的注释
    opcache.load_comments "1" PHP_INI_ALL

    是否load comments,与save_comments联合起来使用,

    如果该值为0,则即使save_comments为1,

    那么php脚本中的comments也是不使用的

    opcache.fast_shutdown "0" PHP_INI_SYSTEM

    是否打开快速关闭,

    打开时可使php在request shutdown时回收内存快

    opcache.enable_file_override "0" PHP_INI_SYSTEM

    如果置为1,则每次调用file_exist() is_file() is_readable()函数时,

    opcache将要检查该文件是否被cache了,

    这样增加了检查存在性和可读性的开销,

    但避免了当validate_timestamps为disable时返回错误文件状态的风险。

    opcache.optimization_level "0xffffffff" PHP_INI_SYSTEM 运行时控制优化的掩码(干什么的?)
    opcache.inherited_hack "1" PHP_INI_SYSTEM 5.3以前使用。5.3后废弃
    opcache.dups_fix "0" PHP_INI_ALL 为解决“cannot redecllare class" 时,可将其置为1
    opcache.blacklist_filename "" PHP_INI_SYSTEM

    设置黑名单文件,符合黑名单文件中定义的php文件将不被opcache。黑名单文件的例子如下:

    ; Matches a specific file.
    /var/www/broken.php
    ; A prefix that matches all files starting with x.
    /var/www/x
    ; A wildcard match.
    /var/www/*-broken.php
    一行为一条规则,支持通配符,注释以分号开头
    opcache.max_file_size "0" PHP_INI_SYSTEM 被cache的文件的最大size,单位bytes。0表示不限
    opcache.consistency_checks "0" PHP_INI_ALL

    如果置为N,N非零,则opcache会每N个请求核实一下cache的检验和。

    这会损害性能,应该只在debug时使用

    opcache.force_restart_timeout "180" PHP_INI_SYSTEM 如果opcache处于非active状态,当N秒后opcache将自动重启
    opcache.error_log "" PHP_INI_SYSTEM opcache自身的errorlog文件路径,为空时则使用stderr
    opcache.log_verbosity_level "1" PHP_INI_SYSTEM 日志记录level,默认只有fatal error和error
    opcache.preferred_memory_model "" PHP_INI_SYSTEM

    opcache首选使用的内存模型,为空时会选择最适当的模型。

    常用的有,mmap shm posix 和win32

    opcache.protect_memory "0" PHP_INI_SYSTEM

    运行php脚本时保护共享内存防止意外的写入。

    只对debug时有用。

    opcache.mmap_base NULL PHP_INI_SYSTEM  
    转载:http://blog.csdn.net/bly1126/article/details/19077853
     
  • 相关阅读:
    CentOS VPS
    Make 命令教程
    Nginx 学习
    字体对齐问题
    postman curl
    linux命令
    服务器
    操作系统
    nginx-1.15遇到无法加载php文件报404的问题
    thinkphp6.0框架下载与安装
  • 原文地址:https://www.cnblogs.com/wawahaha/p/4667151.html
Copyright © 2020-2023  润新知