1. Opcache简介
Opcache是一个PHP扩展,也是PHP7的一个重要特性之一。它的作用是将PHP脚本的中间代码缓存起来,以避免每次请求都需要重新编译和解析脚本,从而提升PHP程序的执行性能。
2. 打开Opcache
在PHP7中,默认情况下Opcache是关闭的。要开启Opcache,需要修改php.ini配置文件。
[opcache]
; 开启Opcache
opcache.enable=1
修改php.ini文件后,需要重启Web服务器才能生效。
3. 优化PHP7性能的设置
3.1 内存设置
在Opcache中,有一个重要的参数是opcache.memory_consumption,它控制着Opcache的内存使用量。通过适当地调整这个参数,可以优化PHP7的性能。
[opcache]
; Opcache使用的内存大小,单位是MB
opcache.memory_consumption=128
适当地增大opcache.memory_consumption的值,可以将更多的中间代码缓存到内存中,从而减少硬盘IO,提升性能。
3.2 缓存设置
Opcache还有一些其他的参数可以调整,以进一步优化PHP7的性能。
[opcache]
; 中间代码缓存的大小,单位是字节
opcache.max_accelerated_files=10000
; 缓存过期时间,单位是秒
opcache.revalidate_freq=60
; 内部加速队列大小,单位是字节
opcache.consistency_checks=0
opcache.max_accelerated_files控制着中间代码缓存的大小,适当增大这个值可以缓存更多的文件。
opcache.revalidate_freq设置了缓存文件的过期时间。每隔指定的时间,Opcache会重新检查文件是否有更新,如果有更新,会重新编译和解析文件。
opcache.consistency_checks为0时禁用了Opcache的一致性检查,这可以提高执行性能。
3.3 文件监控设置
当Opcache开启的时候,PHP脚本的修改不会立即生效,因为中间代码已经被缓存起来了。为了使修改的脚本生效,可以通过以下设置来监控文件的变化,并自动刷新Opcache。
[opcache]
; 开启文件监控
opcache.validate_timestamps=1
opcache.validate_timestamps为1时,Opcache会检查文件的修改时间戳,如果有变化,则会刷新Opcache。
4. 总结
通过打开Opcache和适当调整相关的参数,可以大幅度提升PHP7的执行性能。合理的内存设置、缓存设置和文件监控设置可以使PHP脚本的编译和解析过程更高效,减少IO开销。
在真实的生产环境中,可以根据服务器的配置和应用的特点,进一步优化Opcache的设置,以获取更好的性能表现。