PHP7的性能较之前相比提升了很多,但是依然还有优化的空间。
1、开启Zend Opcache
在php.ini文件加入:
- zend_extension=opcache.so
- opcache.enable=1
- opcache.enable_cli=1
复制代码
2、Hugepage 大页内存管理方式
首先在系统中开启Hugepage,然后开启Opcache的huge_code_pages:
- sysctl vm.nr_hugepages=512 ##分配512个预留的大页内存
复制代码
cat /proc/meminfo | grep Huge
然后在php.ini中加入:
opcache.huge_code_pages=1
经微科普实际测试,该优化对性能的影响不太明显。
3、Opcache File Cache
开启Opcache File Cache,通过开启这个可以让Opcache把opcode缓存缓存到外部文件中,对于一些脚本,会有明显的性能提升。在php.ini中加入:
4、减少PHP文件修改检查的频率,加入如下配置:
- opcache.validate_timestamps=600
- opcache.revalidate_freq=10
复制代码 opcache.validate_timestamps=0时永不检查php文件是否修改,性能最佳,适合于生产环境。
5、安装memcache或Redis扩展
memcache或Redis是php中的内容缓存组件。
6、开启preload预加载
preload仅在php7.4以上版本支持。
- [opcache]
- zend_extension=opcache.so
- opcache.enable=1 # 启用 opcache
- opcache.preload=your_preload_script.php #该脚本用于执行预加载哪些文件
- opcache.preload_user=a_user_name # preload用户,安全考虑禁止root用户
复制代码 一段最简单的预加载脚本如下:
- $files = /* An array of files you want to preload */;
- foreach ($files as $file) {
- opcache_compile_file($file);
- }
复制代码
PHP7性能优化 |