提示内容
PHP OPcache 模块配置不正确。OPcache 驻留字符串缓冲区几乎已满。 为了确保可以有效地缓存重复字符串,建议将 “opcache.interned_strings_buffer” 应用到您的 PHP 配置,其值高于 “8”.
解决它
PHP OPcache 是一个非常有效的缓存机制,用于提高 PHP 的执行速度,特别是在 Nextcloud 等大型应用中。问题提示 OPcache 内部字符串缓冲区几乎已满,解决此问题的方法是增大 opcache.interned_strings_buffer
配置项的值。
#php位置及版本以自己的为准 sudo nano /etc/php/8.2/fpm/php.ini 找到以下取消注释并修改 #opcache.interned_strings_buffer=16 结果为 opcache.interned_strings_buffer=32
/etc/php/8.2/fpm/php.ini中的其它优化项 ;opcache.revalidate_freq=2 改为 opcache.revalidate_freq=60 ;opcache.validate_timestamps=1改为 opcache.validate_timestamps=0 # 生产环境建议设为 0,可提高性能 ;opcache.save_comments=1改为 opcache.save_comments=1 # 确保 PHPDoc 注释可用,避免部分应用兼容性问题 ----以上是nextcloud官方文档推荐,以下是个人调整--- opcache.enable_cli=1 # 确保 CLI 也使用 OPcache,提高 Nextcloud cron 任务性能 opcache.memory_consumption=512 # 默认128,建议调整为 256 或 512 以支持大型应用 opcache.max_accelerated_files=100000 # 默认 10000,增大支持更多 PHP 文件 max_execution_time = 3000 #默认 30,防止索引任务被超时终止
关于JIT 编译器
根据 Nextcloud 官方的指引,启用 JIT 编译器(在 PHP 8.0 及以上版本)确实可以为计算密集型应用提供性能提升,但需要了解它的实际效果和如何优化配置。JIT 编译器适合计算密集型应用,对 Nextcloud 的性能提升有限,但可以启用并配置以尝试优化 PHP 性能。如果启用 JIT 后没有明显的性能问题,可以保持当前配置。如果遇到内存问题,增opcache.memory_consumption 的值并监控 OPcache 使用情况。
opcache.jit = 1255 opcache.jit_buffer_size = 8M
重启服务
systemctl restart nginx php8.2-fpm