3

Я использую PHP 5.6 и включил скомпилированный модуль opcache. Теперь, когда я читаю предупреждения в моем журнале ошибок, я получаю эти сообщения каждые несколько миллисекунд:

Warning Interned String buffer overflow

Нет описания этой ошибки, используя этот поиск Google. Тем не менее, исходный код говорит, может быть, не хватает памяти? Я правильно прочитал это?

Итак, насколько я понимаю, абсолютно нормально, если кэш исчерпан и будет повторно использоваться / перерабатываться для новых строк. Если нет, то что мне не хватает?

Я установил opcache.interned_string_buffer от 4 до 8 МБ, но пока не повезло.

2 ответа2

4

opcache.interned_strings_buffer - довольно аккуратный параметр с документацией как 0. PHP использует технику, называемую интернирование строк, для повышения производительности - например, если в вашем коде есть строка "foobar" 1000 раз, внутренне PHP будет хранить 1 неизменную переменную для этой строки и просто использовать указатель на нее для другой 999 раз вы используете его. Здорово. Этот параметр переводит его на следующий уровень - вместо того, чтобы иметь пул этих неизменяемых строк для каждого процесса SINGLE php-fpm, этот параметр распределяет его среди ВСЕХ ваших процессов php-fpm. Это экономит память и улучшает производительность, особенно в больших приложениях.

https://www.scalingphpbook.com/best-zend-opcache-settings-tuning-config/

0

Существует постоянная ошибка, которая затрагивает некоторых пользователей, когда opcache.interned_string_buffer не установлен достаточно высоко. Эта ошибка приводит к сбою Apache, поэтому вы наверняка знаете, если у вас возникла проблема.

Я рекомендую временно создать php-файл, такой как info.php, и добавить

<?php phpinfo(); ?>

просмотрите файл в браузере, чтобы легко увидеть "Interned Strings Used memory" и убедитесь, что у вас есть немного свободной памяти. У меня довольно большой сайт WordPress, и мой предел памяти установлен на 32. У меня постоянно используется около 14 Мб внутренней памяти строк.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .