ads:
关注以下公众号查看更多文章

phpfpm起多个进程的原因是因为在请求-响应期间单个phpfpm被阻塞,为了满足及时响应其他请求的需要而增加phpfpm的数量。为了减少单次请求消耗掉的时间,减少不必要的cpu、内存消耗,我们可以安装opcache和apcu。opcache可以避免每次请求都要读取php脚本文件生成opcode的过程。而apcu可以在多次不同的请求之间共享一些信息,避免每次请求查询这些公共信息造成额外的网络请求和数据库查询。
opcache
在原有的docker镜像中安装opcache命令为
docker-php-ext-install opcache
需要配置一下opcahce
zend_extension=opcache
opcache.enable=1
opcache.enable_cli=1
opcache.memory_consumption=44
opcache.interned_strings_buffer=1
opcache.max_accelerated_files=100000
opcache.max_wasted_percentage=72
opcache.use_cwd=1
opcache.validate_timestamps=0
opcache.revalidate_freq=0
opcache.fast_shutdown=1
opcache.consistency_checks=0
opcache.blacklist_filename=/src/.opcacheignore
opcache各个配置的含义如下:
opcache扩展位置
zend_extension=opcache.so
启用opcache
opcache.enable=1
使用共享内存大小
opcache.memory_consumption=200
字符串缓存大小
opcache.interned_strings_buffer=8
最大缓存文件数量
opcache.max_accelerated_files=8000
出现异常,立即释放全部内存
opcache.fast_shutdown=1
最大允许占用内存百分比,超过此限制会重启进程
opcache.max_wasted_percentage=20
如果置为1,则将当前路径加入到文件key中,以避免可能产生的同文件名的文件key冲突
opcache.use_cwd=1
文件检测周期
revalidate_freq=3600
启用文件缓存时间戳
opcache.validate_timestamps=1
黑名单中的文件描述的文件不会被opcache缓存

本文介绍了PHP性能优化的两个关键组件:OpCache和APCu。OpCache用于缓存PHP脚本的编译结果,减少CPU和内存消耗,而APCu提供应用程序级别的缓存,减少数据库查询。文章详细讲解了两者如何安装、配置,并提供了调优建议。通过监控函数`opcache_get_status(false)`和`apcu_sma_info()`检查它们的内存使用情况。
&spm=1001.2101.3001.5002&articleId=126882963&d=1&t=3&u=d0d168bc85ac434d95f0afbae1d93e8d)
5万+

被折叠的 条评论
为什么被折叠?



