OpCache — понять, как работает кеш, на пользователя или на ресурс?

Я использую OpCache, так как он поставляется с PHP 5.5.x, и я очень им доволен, но я хотел бы настроить его параметры памяти, и здесь мое понимание не хватает...

Когда данный пользователь запрашивает данную страницу, сервер отвечает на эти запросы, вызывает интерпретатор PHP, интерпретатор сохраняет коды операций в кеше, обслуживает контент, и все. В следующий раз, когда приходит запрос, кеш срабатывает, если запрошенные коды операций совпадают, но мои вопросы...

Кэш работает для каждого пользователя (и кешированные коды операций применяются только для запросов этого конкретного пользователя) или они применяются к любому запросу, использующему эти кешированные коды операций?

Что я хотел бы сделать, так это настроить OpCache для использования определенного объема памяти, но я не знаю, работает ли пул памяти для каждого пользователя или он действует как общий пул ресурсов.

Можете ли вы дать мне подсказку?


person Julio María Meca Hansen    schedule 02.12.2013    source источник


Ответы (1)


Вы уже правы насчет того, как код операции хранится в кеше и считывается из общей памяти. Однако это не на основе пользователя, а скорее на уровне сценария. Каждый файл php, который был проанализирован и скомпилирован в код операции, будет сохранен в общей памяти и выполнен оттуда. Этапы анализа и компиляции, которые в противном случае выполняются медленно, будут сокращены для каждого кэшированного скрипта.

введите здесь описание изображения

Чтобы ответить на ваши вопросы, кеш работает не для каждого пользователя, а для каждого сценария. Кэшированный код операции по-прежнему выполняется скриптовым движком (в основном Zend) для каждого запроса.

И да, он читает из общей памяти.

Ссылка Д. Shafik: все, что вам нужно знать о кеше OpCode

person Awemo    schedule 02.12.2013
comment
Потрясающий! Именно так, как я хотел, чтобы он вел себя. Теперь я могу легко настроить параметры памяти. Большое Вам спасибо :) - person Julio María Meca Hansen; 02.12.2013
comment
@Awemo У меня есть путаница с общей памятью. Не могли бы вы сказать мне, что именно является общей памятью. Жесткий диск или оперативная память? - person sandipshirsale; 22.08.2016
comment
@sandipshirsale Это оперативная память серверной системы, см. этот ответ. - person Awemo; 22.08.2016