答案1
opcache.interned_strings_buffer - 一个非常简洁的设置,几乎没有文档。PHP 使用一种称为字符串驻留的技术来提高性能 - 因此,例如,如果您的代码中有 1000 次字符串“foobar”,则 PHP 内部将为该字符串存储 1 个不可变变量,并在您使用它的另外 999 次时仅使用指向它的指针。太棒了。此设置将其提升到一个新的水平 - 而不是为每个单个 php-fpm 进程设置一个这些不可变字符串的池,此设置在所有 php-fpm 进程之间共享它。它可以节省内存并提高性能,尤其是在大型应用程序中。
https://www.scalingphpbook.com/best-zend-opcache-settings-tuning-config/
答案2
存在一个正在发生的错误当 opcache.interned_string_buffer 设置得不够高时,这会影响一些用户。该错误会导致 Apache 崩溃,因此如果您遇到此问题,您肯定会知道。
我建议临时创建一个 php 文件(例如 info.php)并添加
<?php phpinfo(); ?>
在浏览器中查看文件,轻松查看“Interned Strings Used memory”,并确保您有一些可用内存。我有一个相当大的 wordpress 网站,我的内存限制设置为 32。我一直使用大约 14mb 的 interned strings 内存。