Opcache是一种将PHP脚本预编译的字节码存放在共享内存中来避免每次加载和解析PHP脚本的开销,解析器可以直接从共享内存读取已经缓存的字节码,从而大大提高PHP的执行效率,php5.5版本以后自带opcache功能,之前的版本需要自己安装opcache扩展,
php7相比php5性能提升了很多,在开启opcache后性能将会提升更多。
配置
以下我设置的opcache相关的参数,可以根据服务器配置和需求进行修改和优化:
opcache.enable=1
opcache.enable_cli=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=400
opcache.revalidate_freq=60
opcache.save_comments=0
opcache.fast_shutdown=1
opcache.huge_code_pages=1
opcache.file_cache=/dev/shm/opcahe/
其他更过参数和详细说明请查阅官方手册。
清理缓存
开启opcache后,除非到了设置的缓存过期时间,缓存的字节码才会被清除然后重新编译新的php文件,一般网站上线后都会设置永远不会过期,但遇到修改php文件的时候,就需要重启php-fpm
进行缓存才会被清理,也可以增加以下php文件通过web或者脚本执行的形式清理缓存的php字节码:
<?php
opcache_reset();
echo "php字节码缓存清理完成";
?>